re PR c/7776 (const char* p = "foo"; if (p == "foo") ... is compiled without warning!)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2005-12-04  Roger Sayle  <roger@eyesopen.com>
2
3         PR c/7776
4         * common.opt (Wstring-literal-comparison): New command line option.
5         * c-opts.c (c_common_handle_option): Set it with -Wall.
6         * c-typeck.c (parser_build_binary_op): Issue warning if either
7         operand of a comparison operator is a string literal, except for
8         testing equality or inequality against NULL.
9
10         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
11
12 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
13
14         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
15         of building a NOP_EXPR.
16         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
17         NOP_EXPR.
18         * c-convert.c (convert): Use fold_convert instead of building
19         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
20         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
21         #if 0 code.
22         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
23         NOP_EXPR the same as CONVERT_EXPR.
24         * c-typeck.c (build_function_call): Use fold_convert instead of
25         building a NOP_EXPR directly.
26         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
27
28 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
29
30         PR rtl-optimization/25197
31         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
32         have a reg.
33
34 2005-12-02  Stuart Hastings  <stuart@apple.com>
35
36         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
37         warning.
38
39 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
40
41         * c-typeck.c (default_function_array_conversion,
42         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
43         (build_conditional_expr): Apply integer_zerop to orig_op1 and
44         orig_op2.  Don't check them for NOP_EXPR.
45         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
46         around integer zero.
47
48 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
49
50         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
51         toc_save_offset, toc_size, lr_size.
52         (rs6000_stack_info): Use memset rather than bss struct copy to init.
53         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
54         Adjust for removal of unused rs6000_stack_t fields.
55         (debug_stack_info): Adjust.
56         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
57         first, and don't bother checking for set/inc of lr on sibcalls.
58         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
59
60 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
61
62         PR target/25199
63         * config/i386/i386.md (movqi_1): Only force imovx for alternative
64         5 if operand 1 is not aligned.  Undo previous constraint change.
65         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
66
67 2005-12-02  Richard Guenther  <rguenther@suse.de>
68
69         * tree.h (build): Remove prototype.
70         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
71         * tree.c (build): Remove.
72         (build0_stat): Update comment.
73
74 2005-12-02  Richard Guenther  <rguenther@suse.de>
75
76         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
77         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
78         Likewise.
79         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
80         maybe_fold_offset_to_component_ref): Likewise.
81         * tree-ssa-dom.c (thread_across_edge,
82         simplify_rhs_and_lookup_avail_expr,
83         find_equivalent_equality_comparison, record_equivalences_from_stmt):
84         Likewise.
85         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
86         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
87         lower_try_finally_switch): Likewise.
88         * tree-if-conv.c (add_to_dst_predicate_list,
89         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
90         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
91         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
92         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
93         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
94         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
95         gimplify_init_ctor_eval, gimplify_init_constructor,
96         gimplify_variable_sized_compare, gimplify_boolean_expr,
97         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
98         gimplify_expr, gimplify_body, gimplify_function_tree,
99         force_gimple_operand): Likewise.
100         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
101         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
102         mx_register_decls): Likewise.
103         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
104         get_frame_field, finalize_nesting_tree_1): Likewise.
105         * tree-inline.c (setup_one_parameter): Likewise.
106         * tree-vect-transform.c (vectorizable_condition): Likewise.
107         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
108         Likewise.
109         * tree-profile.c (tree_gen_edge_profiler): Likewise.
110         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
111         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
112         * tree-chrec.h (build_polynomial_chrec): Likewise.
113
114 2005-12-02  Richard Guenther  <rguenther@suse.de>
115
116         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
117         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
118         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
119         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
120         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
121         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
122         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
123         Likewise.
124         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
125         sh_adjust_unroll_max): Likewise.
126         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
127         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
128         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
129         Likewise.
130         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
131         Likewise.
132         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
133         Likewise.
134
135 2005-12-02  Richard Guenther  <rguenther@suse.de>
136
137         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
138         simplify_cond_using_ranges): Use buildN instead of build.
139         * tree-tailcall.c (adjust_accumulator_values,
140         adjust_return_value): Likewise.
141         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
142         generate_element_copy, generate_element_zero,
143         generate_one_element_init): Likewise.
144         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
145         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
146         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
147         perfect_nestify): Likewise.
148
149 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
150
151         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
152
153 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
154
155         * ggc.h (GGC_RESIZEVEC): New.
156
157 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
158
159         * gcc.c (execute): Improve readability.
160
161 2005-12-02  Richard Guenther  <rguenther@suse.de>
162
163         * tree-cfg.c (mark_used_vars): New function.
164         (dump_function_to_file): Dump only used VAR_DECLs.
165
166 2005-12-02  Richard Guenther  <rguenther@suse.de>
167
168         * convert.c (convert_to_integer): Fix compare for nonpositive
169         constant to use tree_int_cst_sgn <= 0.
170
171 2005-12-02  Richard Guenther  <rguenther@suse.de>
172
173         * convert.c (convert_to_integer): Use fold_convert instead
174         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
175         instead of comparing against 0.  Use build_int_cst instead
176         of converting integer_zero_node.
177
178 2005-12-02  Richard Guenther  <rguenther@suse.de>
179
180         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
181         and RROTATE_EXPR.
182  
183 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
184
185         PR target/21017
186         * combine.c (simplify_logical <IOR>): Simplify more patterns to
187         rotates.
188
189 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
190
191         PR middle-end/25176
192         * function.c (expand_function_end): Emit blockage for unwinder
193         after return label.
194
195 2005-12-01  Roger Sayle  <roger@eyesopen.com>
196
197         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
198         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
199         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
200         integer constant comparisons.
201
202 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
203             Janis Johnson  <janis187@us.ibm.com>
204             David Edelsohn  <dje@watson.ibm.com>
205             Ben Elliston  <bje@au.ibm.com>
206
207         * dfp.h, dfp.c: New files.
208         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
209         (DECNUM_H): Likewise.
210         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
211         (INCLUDES): Append $(DECNUMINC).
212         (OBJS-common): Add dfp.o.
213         (dfp.o): New rule.
214         * real.h (EXP_BITS): Pinch one bit to ..
215         (struct real_value): Add decimal field.
216         (real_format): Change table size, update documentation.
217         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
218         (real_from_string3): Declare.
219         (decimal_single_format): Declare.
220         (decimal_double_format): Declare.
221         (decimal_quad_format): Declare.
222         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
223         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
224         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
225         * real.c: Include dfp.h.
226         (normalize): Early return for decimal floats.
227         (do_add): Zero decimal field.
228         (do_compare): Call do_decimal_compare for decimal floats.
229         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
230         (real_arithmetic): Call decimal_real_arithmetic for decimal
231         floating point operands.
232         (real_identical): If a and b are of differing radix, return false.
233         (real_to_integer): Call decimal_real_to_integer if the value is a
234         decimal float.
235         (real_to_integer2): Likewise, call decimal_real_to_integer2.
236         (real_to_decimal): Likewise, call decimal_real_to_decimal.
237         (real_to_hexadecimal): Place "N/A" in the return string for
238         decimal float.
239         (real_from_string3): New variant, given a mode.
240         (real_maxval): Use decimal_real_maxval for decimal floats.
241         (round_for_format): Use decimal_round_for_format for decimals.
242         (real_convert): Use decimal_real_convert where appropriate.
243         (significand_size): Handle base 10.
244         (encode_decimal_single, decode_decimal_single,
245         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
246         decode_decimal_quad): New functions.
247         (decimal_single_format): New.
248         (decimal_double_format): New.
249         (decimal_quad_format): New.
250         * machmode.def: Add SD, DD and TD decimal floating point modes.
251         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
252         Include MODE_DECIMAL_FLOAT.
253         (DECIMAL_FLOAT_MODE_P): New.
254         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
255         * genmodes.c (struct mode_data): Add counter field.
256         (struct mode_data): Update comment for format.
257         (blank_mode): Initialise counter field.
258         (new_mode): Increment counter field for each mode defined.
259         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
260         using a format.
261         (make_complex_modes): Handle modes containing `D'.
262         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
263         (make_decimal_float_mode): New.
264         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
265         (cmp_modes): Compare counter field if other characteristics
266         similar.
267         (emit_real_format_for_mode): Support formats for decimal floats.
268         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
269         Document MODE_DECIMAL_FLOAT.
270
271 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
272
273         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
274         Delete dead code.
275
276 2005-12-01  Richard Henderson  <rth@redhat.com>
277
278         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
279
280 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
281
282         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
283
284         * config/pa/pa.c (pa_init_builtins): If we detect
285         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
286         putc_unlocked.
287
288 2005-12-01  Richard Guenther  <rguenther@suse.de>
289
290         * fold-const.c (fold_binary): Use fold_build2, not
291         fold (build (...)).
292
293 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
294
295         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
296
297         * vec.h (VEC_block_remove): New.
298
299 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
300
301         PR c/13384
302         * c-common.c (lvalue_error): Fix wording.
303
304 2005-12-01  Richard Guenther  <rguenther@suse.de>
305
306         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
307         thinko in last patch.
308
309 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
310
311         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
312         than -flat_namespace.
313
314 2005-12-01  Ben Elliston  <bje@au.ibm.com>
315
316         * mklibgcc.in: Parameterise the script to build soft float
317         functions by iterating over each type, rather than cloning the
318         code for each type.
319
320 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
321
322         PR middle-end/25158
323         * builtins.c (fold_builtin_fputs): Defer check for missing
324         replacement functions.
325
326 2005-11-30  Kean Johnston  <jkj@sco.com>
327
328         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
329         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
330
331 2005-11-30  Richard Guenther  <rguenther@suse.de>
332
333         PR tree-optimization/22501
334         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
335         function split out from ...
336         (forward_propagate_addr_expr): ... here.  Use it to propagate
337         ADDR_EXPRs to all uses.
338
339 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
340
341         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
342         * builtins.c (expand_builtin_mathfn): Use them.
343         (expand_builtin_mathfn_2): Likewise.
344         (expand_builtin_mathfn_3): Likewise.
345         (expand_builtin_int_roundingfn): Likewise.
346         (expand_builtin): Likewise.
347         (integer_valued_real_p): Likewise.
348         (fold_builtin_int_roundingfn): Likewise.
349         (fold_builtin_bitop): Likewise.
350         (fold_builtin_logarithm): Likewise.
351         (fold_builtin_1): Likewise.
352         * convert.c (convert_to_integer): Likewise.
353         * fold-const.c (negate_mathfn_p): Likewise.
354         (tree_expr_nonnegative_p): Likewise.
355
356 2005-11-30  Dale Johannesen  <dalej@apple.com>
357             Andrew Pinski  <pinskia@physics.uc.edu>
358
359         * combine.c (find_split_point):  Sign extend bitmask
360         when changing bitfield assignment to IOR of AND.
361
362 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
363
364         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
365         clobber to scratch reg.
366         (*decrement_and_branch_until_zero_no_clobber): Remove.
367         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
368         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
369         * config/ms1/ms1.opt (mmul): Remove.
370         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
371         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
372
373 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
374             Bernd Schmidt  <bernd.schmidt@analog.com>
375
376         * pa/predicates.md (symbolic_operand): Add comment.
377         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
378         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
379         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
380         (pa_secondary_reload_class): Delete.
381         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
382         and pa_secondary_reload_class.  Reorder some checks.  Update inline
383         copy of symbolic operand.
384         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
385
386 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
387
388         * loop-doloop.c (add_test): Only add jump notes if we did emit a
389         jump.
390
391 2005-11-30  Jeff Law  <law@redhat.com>
392
393         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
394         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
395
396 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
397
398         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
399         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
400         (ia64_expand_move): Adjust caller.
401
402         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
403         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
404         negate VAL.
405
406 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
407
408         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
409         Always produce an output if we can remove NEGs or canonicalize
410         (minus (minus ...)) expressions.  Provide a fast path for the
411         two-operand case.
412         (simplify_gen_binary): Do not call simplify_plus_minus.
413         (simplify_binary_operation_1): Reassociate at the end of the
414         function.
415
416 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
417
418         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
419         moves and unpack to speed up.
420
421 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
422
423         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
424         argument, they are always sparc_compare_op0 and sparc_compare_op1.
425         (gen_v9_scc): Update callers.
426         * config/sparc/sparc.md: Likewise.
427         * config/sparc/sparc-protos.h: Update extern declaration.
428
429         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
430
431 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
432
433         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
434         the if.
435
436 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
437
438         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
439         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
440         (negate_expr): Here.
441
442 2005-11-29  Ben Elliston  <bje@au.ibm.com>
443
444         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
445         Fix typo in comment.
446
447 2005-11-29  Ben Elliston  <bje@au.ibm.com>
448
449         * Makefile.in (clean-target): Depend on clean-target-libgcc.
450         (clean-target-libgcc): Import rule from the top-level Makefile.in.
451
452 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
453
454         PR middle-end/20109
455         PR middle-end/25120
456         * builtins.c (init_target_chars): New.
457         (expand_builtin_printf, expand_builtin_fprintf,
458         expand_builtin_sprintf, fold_builtin_sprintf,
459         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
460         fold_builtin_snprintf_chk, fold_builtin_printf,
461         fold_builtin_fprintf): Check for matching format strings using
462         the target charset.
463
464 2005-11-29  Paul Brook  <paul@codesourcery.com>
465
466         * config.gcc: Do not use fixproto on m68k-elf.
467
468 2005-11-28  Roger Sayle  <roger@eyesopen.com>
469
470         * expmed.c (div_cost): Replace with...
471         (sdiv_cost, udiv_cost): New.
472         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
473         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
474         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
475         (expand_divmod): Replace use of div_cost with either sdiv_cost
476         or udiv_cost depending upon the signedness of the operation.
477
478 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
479
480         PR libfortran/24991
481         * config/darwin.c (machopic_indirection_name,
482         machopic_output_indirection): Follow transparent alias chain.
483
484 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
485
486         * varasm.c (ultimate_transparent_alias_target): Add comment.
487
488 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
489
490         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
491         SET_SRC instead of XEXP where appropriate.
492
493 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
494
495         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
496         __builtin_expect.
497
498 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
499
500         * config/fp-bit.h (LSHIFT): Take shift count parameter.
501         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
502         bit at a time.
503
504 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
505
506         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
507         secondary_input_reload_class, made static.  Adapt to new
508         infrastructure.
509         (secondary_output_reload_class): Delete.
510         (TARGET_SECONDARY_RELOAD): New macro.
511         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
512         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
513
514 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
515
516         PR c++/21166
517         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
518         when its natural alignment is > BITS_PER_UNIT.
519         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
520         * c-common.c (handle_packed_attribute): Ignore packing on a field
521         whose type is naturally char aligned.
522
523 2005-11-28  Richard Guenther  <rguenther@suse.de>
524
525         * c-common.c (strict_aliasing_warning): Handle all
526         component-ref like accesses.
527
528 2005-11-28  Roger Sayle  <roger@eyesopen.com>
529             Uros Bizjak  <uros@kss-loka.si>
530
531         PR middle-end/20219
532         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
533         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
534         when flag_unsafe_math_optimizations is set and
535         we don't care about NaNs or Infinities.
536
537         Move x/expN(y) and x/pow(y,z) transformation into common
538         flag_unsafe_math_optimizations section.
539
540 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
541
542         * gcc.c (main): Change type of argv to "char **".
543
544 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
545
546         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
547         small data sections.
548         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
549         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
550         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
551         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
552         output locals to sbss if !rs6000_elf_in_small_data_p.
553         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
554
555 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
556
557         PR target/24997
558         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
559         generated by reload.
560         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
561         indexed_or_indirect_address.
562         (indexed_or_indirect_address): Don't test for base reg.  Call
563         address_operand last.  Make it a special predicate.
564
565 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
566
567         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
568
569 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
570
571         PR middle-end/24575
572         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
573         is undefined.
574         (negate_expr): Likewise.
575
576 2005-11-27  Andreas Schwab  <schwab@suse.de>
577
578         * config/m68k/m68k.c: Reindent and fix whitespace, remove
579         redundant parens.
580
581 2005-11-27  Steven Bosscher  <stevenb@suse.de>
582
583         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
584         has EH predecessor edges.
585
586 2005-11-26  Eric Christopher  <echristo@apple.com>
587
588         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
589         register stalls by zero extending to the full register.
590
591 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
592
593         * config/floatunsisf.c, config/floatunsidf.c,
594         config/floatunsixf.c, config/floatunsitf.c: New files.
595         * config/ia64/t-hpux: Add floatunsitf.c.
596         * config/ia64/ia64.c (ia64_init_libfuncs): Use
597         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
598
599 2005-11-26  Richard Henderson  <rth@redhat.com>
600
601         * c-lex.c (pragma_lex): Rename from c_lex.
602         * c-pch.c: Update for pragma_lex rename.
603         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
604         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
605         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
606         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
607         * doc/tm.texi: Likewise.
608
609 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
610
611         PR middle-end/23669
612         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
613         when overflow is undefined.
614
615 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
616
617         * doc/md.texi (Insn Canonicalizations): Refer to the
618         function commutative_operand_precedence for further rules.
619
620 2005-11-25  Roger Sayle  <roger@eyesopen.com>
621
622         PR middle-end/21309
623         * expmed.c (choose_mult_variant): Return immediately when mult_cost
624         is less than zero.  Limit mult_cost to a reasonable upper bound for
625         the synthetic multiplication sequence.
626
627 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
628
629         PR middle-end/25022
630         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
631         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
632         Lookup the explicit replacement functions for any unlocked
633         stdio builtin transformations.
634
635 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
636
637         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
638         earlyclobber.
639         * targhooks.c (default_secondary_reload): Don't require operand 2
640         for an input reload to be earlyclobber.
641
642 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
643
644         * fold-const.c (negate_mathfn_p): Fix comment and add support
645         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
646         BUILT_IN_ATANH.
647
648 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
649
650         PR middle-end/24998
651         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
652         _Q_ulltoq for unsigned conversions from SImode and DImode to
653         TFmode.
654
655 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
656
657         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
658         (__floatundidf, __floatundisf): Likewise.
659
660 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
661
662         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
663         (rs6000_override_options): Remove initialization of
664         rs6000_sr_alias_set.
665         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
666         (rs6000_emit_stack_tie): Same.
667         (emit_frame_save): Same.
668         (gen_frame_mem_offset): Same.
669         (rs6000_emit_prologue): Same.
670         (rs6000_emit_epilogue): Same.
671
672 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
673
674         PR middle-end/24989
675         * fold-const.c (fold_build): Convert bool_var != 1 and
676         bool_var == 0 to !bool_var.
677
678 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
679
680         PR middle-end/24990
681         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
682         for C being INTEGER_CST.  Likewise for !=.
683
684 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
685
686         PR middle-end/24998
687         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
688         unsigned conversions from SImode to TFmode.
689
690 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
691
692         * expr.c (expand_expr_real_1): Fix error in last change.
693
694 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
695
696         * caller-save.c: (this_insn_sets): Move into:
697         (save_call_clobbered_regs).
698         (mark_set_regs): Get this_insn_sets from data.
699
700         (save_call_clobbered_regs): Take sets of the return value by
701         sibcalls into account.
702
703 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
704         PR target/21623:
705
706         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
707         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
708         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
709         (memory_move_secondary_cost, init_reg_autoinc): Remove
710         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
711         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
712         secondary_reload_class call.
713         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
714         callers.
715         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
716         (push_secondary_reload): Use secondary_reload target hook.
717         (secondary_reload_class, scratch_reload_class): New functions.
718         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
719         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
720         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
721         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
722         (secondary_reload_class, scratch_reload_class): Declare.
723         * reload1.c: Include target.h.
724         (reload_adjust_reg_for_temp): New function.
725         (reload_adjust_reg_for_icode): Likewise.
726         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
727         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
728         call.
729         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
730         for inheritance.  Support case when both secondary & tertiary reloads
731         are for intermediate registers.
732         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
733         with secondary_reload_class call.  Support case when both secondary
734         & tertiary reloads are for intermediate registers.
735         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
736         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
737         * target.h (secondary_reload_info): New struct / typedef.
738         (struct gcc_target): New member secondary_reload.
739         * targhooks.c Include reload.h, optabs.h and recog.h.
740         (default_secondary_reload): New function.
741         * targhooks.h (default_secondary_reload): Declare.
742         * doc/tm.texi: Document secondary_reload target hook.  Update
743         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
744         * doc/md.texi: Likewise.
745
746         * sh-protos.h (sh_secondary_reload): Declare.
747         * sh.c (TARGET_SECONDARY_RELOAD): Override.
748         (sh_secondary_reload): New function.
749         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
750         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
751         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
752         (HAVE_SECONDARY_RELOADS): Define.
753         * sh.md (reload_indf): Rename to:
754         (reload_indf__frn).
755         (reload_outdf): Rename to:
756         (reload_outdf__RnFRm).
757         (reload_insf): Rename to:
758         (reload_insf__frn).
759         (reload_insi): Rename to:
760         (reload_insi__i_fpul).
761
762 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
763
764         * configure.ac: Require at least texinfo 4.4.
765         * configure: Regenerate.
766
767         * doc/install.texi (Tools/packages necessary for building GCC):
768         Update required version of texinfo to at least 4.4.
769         (Installing GCC: Building): Update required version of texinfo
770         to at least 4.4.
771         (Installing GCC: Final installation): Update required version
772         of texi2dvi to at least 4.4.
773         (Host/target specific installation notes for GCC): Update required
774         version of texinfo to at least 4.4.
775
776 2005-11-24  Richard Guenther  <rguenther@suse.de>
777         Dirk Mueller <dmueller@suse.de>
778
779         PR c++/14024
780         * c-common.h (strict_aliasing_warning): Declare.
781         * c-common.c (strict_aliasing_warning): New function,
782         split out from ...
783         * c-typeck.c (build_c_cast): ... here.
784
785 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
786
787         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
788         to order operands.
789         (swap_commutative_operands_with_target): New.
790
791 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
792
793         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
794         also when doing PRE, rather than only for global CPROP.
795
796 2005-11-24  Ben Elliston  <bje@au.ibm.com>
797
798         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
799         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
800         formatting.
801         (expand_twoval_unop): Likewise.
802         (widen_clz): Likewise.
803         (expand_parity): Likewise.
804         (expand_unop): Likewise.
805         (emit_cmp_and_jmp_insn_1): Likewise.
806         (prepare_float_lib_cmp): Likewise.
807
808 2005-11-24  Ben Elliston  <bje@au.ibm.com>
809
810         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
811         Remove unused `class' variable.
812
813 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
814
815         PR c++/21667
816         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
817         C/C++ diagnostic function warn_array_subscript_with_type_char.
818         * c-common.h (warn_array_subscript_with_type_char): Declare.
819         * c-common.c (warn_array_subscript_with_type_char): Define.
820
821 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
822
823         PR c/21668
824         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
825         compiling at the intersection of C and C++.
826
827 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
828
829         * doc/invoke.texi: For man pages, include gcc-vers.texi.
830         List @file in the option summary.  Include the libiberty
831         documentation for @file.
832         * gcc.c (main): Call expandargv.
833         * Makefile.in (gcc-vers.texi): Define srcdir.
834
835 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
836
837         * passes.c (init_optimization_passes): Document
838         sequencing of passes.
839
840 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
841
842         * config/m68k/predicates.md (pcrel_address, extend_operator,
843         post_inc_operand, pre_dec_operand): Remove redundant
844         conditionals.
845         (const_uint32_operand, const_sint32_operand): Use gcc_assert
846         instead of abort.
847         (valid_dbcc_comparison_p): Rewrite in the lisp style.
848
849 2005-11-23  Ben Elliston  <bje@au.ibm.com>
850
851         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
852
853 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
854
855         Preparatory work for PR target/21623:
856         * alpha.c (secondary_reload_class): Rename to:
857         (alpha_secondary_reload_class).
858         * alpha.h, alpha-protos.h: Likewise.
859         * mn10300.c (secondary_reload_class): Rename to:
860         (mn10300_secondary_reload_class).
861         * mn10300.h, mn10300-protos.h: Likewise.
862         * pa.c (secondary_reload_class): Rename to:
863         (pa_secondary_reload_class).
864         * pa.h, pa-protos.h: Likewise.
865         * rs6000.c (secondary_reload_class): Rename to:
866         rs6000_secondary_reload_class.
867         * rs6000.h, rs6000-protos.h: Likewise.
868
869 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
870
871         PR middle-end/22561
872         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
873
874 2005-11-22  Ian Lance Taylor  <ian@airs.com>
875
876         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
877         a mode_class.
878         (prepare_cmp_insn): Likewise.
879
880 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
881
882         PR target/23435
883         * m68k.md (zero_extendsidi2): Force operands[1] to a register
884         if both operands[0] and operands[1] are memory.
885
886 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
887
888         PR middle-end/23606
889         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
890         COMPARISON_CLASS_P and an integral types create create a new
891         expression with the new type and fold that.
892
893 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
894
895         PR target/24988
896         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
897         to SUBTARGET_OS_CPP_BUILTINS.
898
899 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
900
901         * arm.c (emit_set_insn): New function.
902         (arm_split_constant): Call it.
903         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
904         (arm_legitimize_address): Likewise.  Use plus_constant.
905         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
906         (thumb_expand_prologue): Likewise.
907         (arm_gen_load_multiple): Use VOIDmode in SET.
908         (arm_gen_store_multiple): Likewise.
909         (vfp_emit_fstmx): Likewise.  Use plus_constant.
910         (emit_multi_reg_push): Likewise.
911         (emit_sfm): Use plus_constant.
912
913 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
914
915         PR target/24954
916         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
917         typo last change.
918
919 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
920
921         PR middle-end/24950
922         * expmed.c (store_bit_field): Don't attempt to insv a field
923         larger than the reg.
924
925 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
926
927         PR target/24954
928         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
929         explicit sign extension, not a (char) cast.
930
931 2005-11-22  Ben Elliston  <bje@au.ibm.com>
932
933         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
934         GET_MODE_CLASS (x) == MODE_FLOAT.
935         * config/i386/i386.c: Likewise.
936         * config/rs6000/xcoff.h: Likewise.
937         * config/rs6000/linux64.h: Likewise.
938         * config/rs6000/rs6000.c: Likewise.
939         * config/rs6000/rs6000.h: Likewise.
940         * config/rs6000/predicates.md: Likewise.
941         * config/rs6000/sysv4.h: Likewise.
942
943 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
944
945         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
946         flag_pic is set.
947
948         * config/alpha/freebsd.h, config/alpha/linux.h,
949         config/arm/linux-elf.h, config/bfin/bfin.h,
950         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
951         config/i386/beos-elf.h, config/i386/gnu.h,
952         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
953         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
954         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
955         config/rs6000/linux64.h, config/rs6000/sysv4.h,
956         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
957         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
958         config/sparc/linux.h, config/sparc/linux64.h,
959         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
960
961         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
962         are both defined when either flag -fpic or -fPIC are used.
963
964 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
965
966         * config/fp-bit.c (clzusi): New function.
967         (si_to_float, usi_to_float): Use it to compute proper shift.
968         (usi_to_float): Preserve guard bits when shifting right.
969         * libgcc-std.ver (GCC_4.2.0): New version.
970         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
971         __floatundisf): New functions.
972         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
973         __floatundisf): Declare.
974         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
975         _floatundixf, and _floatunditf.
976         * optabs.c (expand_float): If target does not define a pattern for
977         signed or unsigned conversion, use an unsigned libcall instead of
978         a signed one.
979         (init_optabs): Initialize ufloat_optab.
980
981 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
982
983         * config/rs6000/rs6000.opt (mmulhw): New option.
984         * doc/invoke.texi (-mmulhw): Document.
985         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
986         for 405 and 440.
987         * config/rs6000/rs6000.md: Add half-word multiply and
988         multiply-accumulate instructions for 405 and 440.
989
990 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
991
992         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
993         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
994         default now includes a linker group which makes the RTEMS one nest.
995
996 2005-11-22  Ben Elliston  <bje@au.ibm.com>
997
998         * cse.c (fold_rtx): Typo fix.
999         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
1000
1001 2005-11-21  Richard Henderson  <rth@redhat.com>
1002
1003         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
1004         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
1005
1006         * c-tree.h (lookup_name): Move declaration ...
1007         * c-common.h (lookup_name): ... here.
1008         * config/darwin-c.c: Include c-common.h.
1009         * config/t-darwin: Update dependencies.
1010
1011 2005-11-22  Ben Elliston  <bje@au.ibm.com>
1012
1013         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
1014         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
1015         * genopinit.c (gen_insn): Likewise.
1016         * reload.c (find_equiv_reg): Likewise.
1017         * loop.c (load_mems): Likewise.
1018         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
1019         * cse.c (find_comparison_args, fold_rtx): Likewise.
1020         * dwarf2out.c (add_const_value_attribute): Likewise.
1021         * expr.c (convert_move): Likewise.
1022         * recog.c (general_operand, register_operand): Likewise.
1023         * reg-stack.c (replace_reg): Likewise.
1024         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
1025         * c-common.c (handle_vector_size_attribute): Likewise.
1026         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
1027         (simplify_binary_operation_1): Likewise.
1028         (simplify_const_binary_operation): Likewise.
1029         (simplify_relational_operation): Likewise.
1030         (simplify_const_relational_operation): Likewise.
1031         (simplify_immed_subreg): Likewise.
1032         * emit-rtl.c (gen_lowpart_common): Likewise.
1033         * expmed.c (expand_mult): Likewise.
1034         * stor-layout.c (layout_type): Likewise.
1035
1036 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
1037
1038         PR target/24951
1039         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
1040         cst2 only for SPE vectors.
1041
1042 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
1043
1044         PR target/24953
1045         * config/rs6000/predicates.md (vrsave_operation): Check
1046         UNSPEC_VOLATILE value.
1047
1048 2005-11-21  Jan Hubicka  <jh@suse.cz>
1049
1050         PR tree-optimization/24653
1051         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
1052
1053 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
1054
1055         * config/i386/predicates.md (ax_reg_operand): New predicate.
1056         (memory_displacement_only_operand): New predicate.
1057         * config/i386/i386.md ("modrm" attribute): Return 0 if one
1058         operand is AX register and the other operand is memory operand
1059         with displacement only.
1060
1061 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
1062
1063         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
1064         if we don't care about NaNs or Infinities.
1065
1066 2005-11-20  Ian Lance Taylor  <ian@airs.com>
1067
1068         PR rtl-optimization/24883
1069         * combine.c (combinable_i3pat): When checking whether the
1070         destination of i3 is used in i3, consider paradoxical subregs.
1071
1072 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
1073
1074         PR middle-end/20583
1075         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
1076
1077 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
1078
1079         * combine.c (try_combine): Do not run subst on i1src and i2src in
1080         the case of generating a PARALLEL for a comparison.
1081
1082 2005-11-20  Richard Henderson  <rth@redhat.com>
1083
1084         PR 24931
1085         * tree-sra.c (struct sra_elt): Add all_no_warning.
1086         (struct sra_walk_fns) <use>: Add use_all argument.
1087         (sra_walk_expr): Pass it.
1088         (sra_walk_modify_expr): Likewise.
1089         (scalarize_ldst): Likewise.
1090         (scan_use): Update for new argument.
1091         (mark_no_warning): New.
1092         (scalarize_use): Use it.
1093
1094 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
1095
1096         * expr.c (expand_expr_real): Use usmul_optab for widening
1097         signed * unsigned multiplies.
1098         * genopinit.c (optabs): Add usmul_widen_optab.
1099         * optabs.c (init_optabs): Likewise.
1100         * optabs.h (enum optab_index): Add OTI_usmul_widen.
1101         (usmul_widen_optab): Define.
1102         * config/bfin/bfin.md (usmulhisi3): New pattern.
1103
1104         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
1105
1106 2005-11-20  Graham Stott <btinternet.com>
1107
1108         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
1109
1110 2005-11-20  Andreas Schwab  <schwab@suse.de>
1111
1112         PR target/24757
1113         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
1114         insn.
1115
1116 2005-11-19  Richard Henderson  <rth@redhat.com>
1117
1118         PR tree-opt/24665
1119         * tree-gimple.c (is_gimple_id): Export.
1120         * tree-gimple.h (is_gimple_id): Declare.
1121         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
1122         (get_default_value): Use it.
1123         (maybe_fold_stmt_indirect): Likewise.
1124
1125 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
1126
1127         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
1128         than VR1 or vice-versa.
1129
1130 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
1131
1132         PR middle-end/24912
1133         PR middle-end/24750
1134         * reload.c (find_reloads_address_1): Mention dependency on
1135         gen_reload.
1136         * reload1.c (gen_reload): For IN with an unary operation, try
1137         moving inner expression to OUT if trivial SET is not valid.
1138         Confirm that the result is valid.  Move common code block into...
1139         (emit_insn_if_valid_for_reload): New function.
1140
1141 2005-11-19  Richard Guenther  <rguenther@suse.de>
1142
1143         * fold-const.c (fold_indirect_ref_1): Make sure we fold
1144         ARRAY_REFs of constant strings.
1145
1146 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
1147
1148         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
1149         fatal format string.
1150
1151 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
1152
1153         * combine.c (make_compound_operation): Swap operands of
1154         commutative operation if necessary before returning.
1155
1156 2005-11-19  Richard Guenther  <rguenther@suse.de>
1157
1158         PR middle-end/23294
1159         * fold-const.c (fold_plusminus_mult_expr): New function.
1160         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
1161         cases, remove now unnecessary code.
1162
1163 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
1164
1165         * gensupport.c (old_preds): Rename to std_preds, add special field.
1166         (struct old_pred_table): Rename to struct std_pred_table, add special
1167         field.
1168         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
1169         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
1170         (init_predicate_table): Adjust, and set along the way whether a
1171         predicate is special.
1172
1173 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
1174
1175         * BASE-VER: Change to 4.2.0.
1176
1177 2005-11-18  James E Wilson  <wilson@specifix.com>
1178
1179         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
1180         returning it.
1181
1182 2005-11-18  Mike Stump  <mrs@apple.com>
1183
1184         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
1185         * config/darwin-c.c (darwin_pragma_unused): Likewise.
1186         * c-decl.c (lookup_name_two) Remove.
1187         * c-tree.h (lookup_name_two): Remove.
1188         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
1189         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
1190         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
1191         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
1192
1193 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
1194
1195         PR target/24914
1196         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
1197         when not generating code to use that co-processor.
1198
1199 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
1200
1201         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
1202         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
1203         these functions are now in tree-phinodes.c.
1204
1205 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
1206
1207         * config/bfin/bfin.md (trap): New pattern.
1208
1209 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1210
1211         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
1212         on types.
1213
1214         * expr.c (expand_expr_real): Don't call record_block_change unless
1215         ib_boundaries_block is non-null
1216
1217         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
1218
1219         * fold-const.c (build_range_check): Use proper type for subtraction
1220         when merging lower bound.
1221
1222 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
1223
1224         PR rtl-optimization/24497
1225         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
1226         the copied insn.
1227
1228 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
1229
1230         * tree-scalar-evolution.c (expression_expensive_p): New function.
1231         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
1232
1233 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
1234
1235         * config/bfin/crtlibid.s: New file.
1236
1237 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1238
1239         PR target/24348
1240         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
1241         when not using sjlj exceptions.
1242         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
1243         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
1244         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
1245         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
1246         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
1247         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
1248         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
1249         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
1250         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
1251         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
1252         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
1253         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
1254         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
1255         defines.
1256         * config/pa/hpux-unwind.h: New file.
1257
1258 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
1259
1260         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
1261         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
1262         * varasm.c (do_assemble_alias): Adjust call.
1263         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
1264         is defined.
1265         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
1266
1267 2005-11-17  James E Wilson  <wilson@specifix.com>
1268
1269         * tree.def (FUNCTION_DECL): Correct typo in comment.
1270
1271 2005-11-17  Richard Henderson  <rth@redhat.com>
1272
1273         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
1274         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
1275         and DW_CFA_def_cfa_sf.
1276         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
1277         (dbx_reg_number): Don't assert particular registers here.
1278         (based_loc_descr): ... do it here instead.  Fold in ...
1279         (eliminate_reg_to_offset): ... this function.
1280         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
1281         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
1282         * unwind-dw2.c (execute_cfa_program): Apply data align factor
1283         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
1284         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
1285         (instantiate_virtual_regs): Likewise.
1286         * var-tracking.c (adjust_stack_reference): Likewise.
1287         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
1288
1289 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1290
1291         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
1292         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
1293         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
1294         crtlibid.o.
1295         ($(T)crtlibid.o): New rule.
1296
1297 2005-11-16  Richard Guenther  <rguenther@suse.de>
1298
1299         PR middle-end/24851
1300         * fold-const.c (extract_array_ref): Return byte offset
1301         in all cases.
1302         (fold_binary): Fold &x[a] CMP &x[b] to
1303         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
1304         behavior.
1305
1306 2005-11-16  Richard Henderson  <rth@redhat.com>
1307
1308         PR middle-end/23497
1309         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
1310         parts of an SSA_NAME.
1311
1312 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
1313
1314         PR target/24861
1315         * arm.md (split for movsf with immediate): Restrict split to insns
1316         that set a general register.
1317
1318 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
1319
1320         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
1321         uw_update_context.
1322         * unwind-dw2.c (uw_advance_context): Likewise.
1323         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
1324         _Unwind_SjLj_Unregister.
1325         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
1326
1327 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
1328
1329         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
1330
1331 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1332
1333         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
1334         langhook to get a DImode integer type.
1335
1336 2005-11-16  Richard Henderson  <rth@redhat.com>
1337             J"orn Rennecke <joern.rennecke@st.com>
1338             Ulrich Weigand  <uweigand@de.ibm.com>
1339
1340         PR rtl-opt/24160
1341         PR target/24621
1342         * reload1.c (reg_equiv_invariant): New.
1343         (reload): Allocate, initialize, and free it.
1344         (calculate_needs_all_insns): Check it when skipping equivalence
1345         setting insns.
1346         (alter_reg): Likewise.
1347         (eliminate_regs_1): Rename from eliminate_regs.  Add new
1348         may_use_invariant argument; only use reg_equiv_invariant when true.
1349         (eliminate_regs): New.
1350         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
1351         a context for which may_use_invariant may be true.
1352
1353 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1354
1355         * fold-const.c (const_binop): Don't constant fold the operation
1356         if the result has overflowed and flag_trapping_math.
1357         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
1358
1359 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
1360
1361         * config/arm/unwind-arm.c (abort): Add prototype here.
1362         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
1363         (struct phase1_vrs): Add prev_sp.
1364         (unwind_phase2_forced): Save the original core registers instead of
1365         modifying entry_vrs.  Take a new flag argument for resuming unwinding
1366         and set action flags accordingly.  Always set _US_END_OF_STACK when
1367         get_eit_entry fails.  Unwind before calling the stop function.
1368         (_Unwind_GetCFA): New function.
1369         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
1370         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
1371         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
1372         just call unwind_phase2_forced.
1373         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
1374         * config/arm/unwind-arm.h (abort): Remove prototype.
1375         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
1376         prototypes.
1377         (_Unwind_GetCFA): New prototype.
1378         * config/arm/pr-support.c (abort): Add prototype here.
1379         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
1380         forced unwinding.
1381         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
1382         not schedule the prologue with non-call exceptions and EABI.
1383
1384 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
1385
1386         * config/arm/unwind-arm.h: Reorder interface function declarations.
1387         (_URC_END_OF_STACK): New enumeration value.
1388         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
1389         (struct _Unwind_Control_Block): Document reserved field use.
1390         (_Unwind_Stop_Fn): New typedef.
1391         (_Unwind_ForcedUnwind): Declare.
1392         (_Unwind_Resume_or_Rethrow): Declare.
1393         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
1394         argument.  Adjust.
1395         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
1396         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
1397         (UCB_FORCED_STOP_ARG): New.
1398         (search_EIT_table): Update boundary condition checks.
1399         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
1400         (unwind_phase2): Replace for with do..while.
1401         (unwind_phase2_forced): New.
1402         (__gnu_Unwind_RaiseException): Replace for with do..while.
1403         (__gnu_Unwind_ForcedUnwind): New.
1404         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
1405         Use appropriate phase2 unwinder.
1406         (__gnu_Unwind_Resume_or_Rethrow): New.
1407         (__gnu_unwind_pr_common): Cope with forced unwinding.
1408
1409 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
1410
1411         PR target/24772
1412         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
1413
1414         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
1415         roundsf2): Remove "s" from mnemonic.
1416
1417 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1418
1419         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
1420         __PIC__ is defined.
1421         * config/bfin/crtn.s: Change epilogues to match.
1422         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
1423         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
1424         __PIC__ and __pic__.
1425
1426 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1427
1428         PR 24357
1429         * doc/invoke.texi: Distinguish between free and fixed form instead of
1430         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
1431         languages.
1432         * gcc.c (default_compilers): Remove double entries, add entries for
1433         suffixes '.F90' and '.F95'.
1434
1435 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
1436
1437         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
1438         in the stack probing loop.
1439
1440 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
1441
1442         * configure.ac: Use .machine power5 not power5x.
1443         * configure: Regenerate.
1444
1445 2005-11-15  Mike Stump  <mrs@apple.com>
1446
1447         * c-decl.c (lookup_name_two): Add.
1448         * c-tree.h (lookup_name_two): Likewise.
1449         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
1450         * config/darwin-c.c (darwin_pragma_unused): Likewise.
1451
1452 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
1453
1454         PR rtl-optimization/23392
1455         * regrename.c (enum scan_actions) Add mark_access.
1456         (scan_actions_name): Ditto.
1457         (scan_rtx_reg): Handle mark_access.
1458         (scan_rtx_address): Do nothing for mark_access.
1459         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
1460         and regs in REG_INC notes before closing chains for dead regs.
1461         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
1462         opening chains for new writes.
1463
1464 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
1465
1466         * c.opt (ffixed-line-length-none): New.
1467
1468 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
1469
1470         * mklibgcc.in: Change contents of eh_dummy.c.
1471
1472 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
1473
1474         * loop.c (scan_loop): Do not insert temporaries for hard registers.
1475
1476 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
1477
1478         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
1479         of making syscalls.
1480         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
1481
1482 2005-11-15  Jan Hubicka  <jh@suse.cz>
1483
1484         * invoke.texi (large-unit-insns): Document.
1485         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
1486         * params.def (large-unit-insns): New param.
1487
1488 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
1489
1490         PR target/24869
1491         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
1492         special register for operand 3.  Reindent constraints to align
1493         them vertically.
1494
1495 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
1496
1497         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
1498         -mpopcntb, -mfprnd. Add -mcpu=power5+.
1499         * configure.ac: Add test for FP rounding instructions.
1500         * configure: Regenerate.
1501         * config.in: Regenerate.
1502         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1503         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
1504         features enabled.
1505         * config/rs6000/rs6000.opt (mfprnd): New.
1506         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
1507         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
1508         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
1509         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
1510         (TARGET_FPRND): New.
1511         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
1512         UNSPEC_FRIZ): New.
1513         (btrunc<mode>2): New.
1514         (ceil<mode>2): New.
1515         (floor<mode>2): New.
1516         (round<mode>2): New.
1517
1518 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
1519
1520         * gcc.c (version_compare_spec_function): Use fatal() rather than
1521         abort().
1522
1523         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
1524         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
1525         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
1526         as empty.
1527         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
1528         link in crt2.o.
1529
1530         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
1531         on -mmacosx-version-min setting.
1532
1533 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
1534
1535         PR 24840
1536         * tree-vrp.c (infer_value_range): Return false if STMT is a
1537         block terminator and its basic block has no successors.
1538
1539 2005-11-14  Mike Stump  <mrs@apple.com>
1540
1541         * config/i386/i386.c (override_options): -masm=intel isn't
1542         supported on darwin.
1543         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
1544
1545 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
1546
1547         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
1548         vfork after including auto-host.h.
1549
1550 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
1551
1552         PR rtl-optimization/22002
1553         * combine.c (distribute_notes): Detect cases where a reg dies
1554         two or more times in a bb, including on the insn we are combining,
1555         and place the death note on the correct range.
1556
1557 2005-11-14  Dale Johannesen  <dalej@apple.com>
1558
1559         * expmed.c (store_bit_field):  Add offset unconditionally for
1560         memory targets.
1561         (extract_bit_field):  Don't force extzv or extv operand into
1562         a register if field is too big.
1563
1564 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
1565
1566         * config/arm/arm.c (pic_labelno): New.
1567         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
1568         LABEL_REF.  Pass only the labelno to PIC insns.
1569         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
1570         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
1571         * arm.md (UNSPEC_PIC_LABEL): New constant.
1572         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
1573         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
1574         Use the correct label prefix.
1575
1576 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
1577
1578         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
1579         REQ_EQUIV note.
1580
1581 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
1582
1583         * loop-invariant.c: Include tm_p.h.
1584         * Makefile.in: Updated.
1585
1586 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1587
1588         * pa.c (store_reg): Revise generation of frame notes in large frames.
1589         (set_reg_plus_d): Likewise.
1590
1591 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
1592
1593         PR tree-optimization/24709
1594         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
1595         loop check.
1596
1597 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1598
1599         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
1600         and duplicate declaration of pthread_self.
1601
1602 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1603             Ian Lance Taylor  <ian@airs.com>
1604
1605         PR middle-end/24003
1606         * calls.c (expand_call): If TARGET is a MEM and some part of the
1607         argument area has been saved, force TARGET to a register.
1608
1609 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
1610
1611         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
1612         checking.
1613
1614 2005-11-13  Jason Merrill  <jason@redhat.com>
1615
1616         PR c++/22489
1617         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
1618         lazily declared methods.
1619         (force_decl_die): Stop if forcing out the context already make a
1620         DIE for the decl.
1621         (force_type_die): Likewise.
1622
1623 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
1624
1625         PR middle-end/24820
1626         * builtins.c (integer_valued_real_p): Add break in
1627         REAL_CST having TREE_OVERFLOW set.
1628
1629 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
1630
1631         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
1632         addressing modes during calculation of costs.
1633
1634 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1635
1636         * function.c (assign_stack_local_1): Restrict sanity check
1637         on frame size overflow to 32-bit and above platforms.
1638
1639 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
1640
1641         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
1642         * config/cris/cris.c: Include reload.h.
1643         (cris_initial_elimination_offset): New function.
1644         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
1645         Prototype.
1646
1647 2005-11-12  Richard Guenther  <rguenther@suse.de>
1648
1649         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
1650
1651 2005-11-12  Jan Hubicka  <jh@suse.cz>
1652
1653         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
1654         to compare against 0 when possible.
1655
1656 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
1657
1658         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
1659         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
1660         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
1661         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
1662         in the new order.
1663
1664 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
1665
1666         * recog.c (constrain_operands) <case 'g'>: For a match, require
1667         that a non-register matches general_operand when strict >= 0.
1668
1669 2005-11-11  Steven Bosscher  <stevenb@suse.de>
1670
1671         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
1672         previous checkin.
1673
1674 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
1675
1676         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
1677         (memory_address_same): New.
1678         (dse_optimize_stmt): Call memory_address_same.
1679
1680 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
1681
1682         PR middle-end/24750
1683         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
1684         ZERO_EXTEND>: New cases.
1685
1686 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
1687
1688         * longlong.h (__clz_tab): Always provide.
1689
1690 2005-11-11  Steven Bosscher  <stevenb@suse.de>
1691
1692         PR 24265
1693         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
1694         can be assigned to.
1695         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
1696         before check_maybe_invariant.
1697         (move_invariant_reg): Use gen_move_insn instead of replacing
1698         SET_DEST with the temporary for the invariant.
1699         (move_loop_invariants): If checking is enabled, do internal
1700         consistency checks after completing the pass.
1701
1702 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
1703
1704         PR 24644
1705         * common.opt (Wvolatile-register-var): New.
1706         * varasm.c (make_decl_rtl): Only emit warning when option
1707         specified.  Clarify warning message.
1708         * doc/invoke.texi (Wvolatile-register-var): Document new option.
1709
1710         * doc/md.texi (copysign): Document standard named pattern.
1711
1712 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
1713
1714         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
1715         bytes when align is 2.
1716         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
1717         by the first instruction of the loop.
1718
1719 2005-11-11  Jason Merrill  <jason@redhat.com>
1720
1721         PR c++/24686
1722         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
1723         the cleanup list.
1724
1725 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
1726
1727         PR rtl-optimization/22509
1728         * local-alloc.c (memref_used_between_p): Check whether a function call
1729         could not reference the memref.
1730
1731 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
1732
1733         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
1734         algorithm so as to choose the best, not the worst, alternative.
1735         Reset accumulated register class before processing next alternative.
1736
1737 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1738
1739         PR target/24445
1740         * calls.c (expand_call): Copy a return value to a plain register
1741         if needed.
1742
1743 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
1744
1745         PR target/24778
1746         * varasm.c (assemble_name): Recompute name only for transparent
1747         aliases.
1748
1749 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
1750
1751         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
1752
1753 2005-11-04  Jeff Law  <law@redhat.com>
1754
1755         PR middle-end/23181
1756         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
1757         perform reassociation if the parent statement will not die as
1758         a result of the optimization.
1759
1760 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
1761
1762         * tree-ssa-alias.c (compute_may_aliases): Remove call to
1763         delete_old_heap_vars.
1764         * tree-dfa.c (referenced_var_remove): Remove function.
1765         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
1766         (delete_tree_ssa): Remove call to delete_old_heapvars.
1767         Add call to delete_alias_heapvars.
1768         * tree-flow.h (referenced_var_remove): Remove prototype
1769         (init_alias_heapvars): New prototype.
1770         (delete_alias_heapvars): Ditto.
1771         * Makefile.in (tree-ssa-structalias.o): Add
1772         gt-tree-ssa-structalias.o
1773         (GTFILES): Add tree-ssa-structalias.h and
1774         tree-ssa-structalias.c.
1775         (s-gtype): Add gt-tree-ssa-structalias.h.
1776         * tree-ssa-structalias.c (heapvars): Remove.
1777         (oldheapvars): Remove.
1778         (heapvar_for_stmt): New variable.
1779         (heapvar_lookup): New function.
1780         (heapvar_insert): Ditto.
1781         (get_constraint_for): See if we have an old heapvar
1782         to reuse.
1783         (init_alias_heapvars): New function.
1784         (delete_alias_heapvars): Ditto.
1785         Add include of gt-tree-ssa-structalias.h.
1786
1787 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1788
1789         PR middle-end/22127
1790         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
1791
1792 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1793
1794         * tree.c (int_fits_type_p): Only look at the base type
1795         if it has the same precision as the original type.
1796
1797 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
1798
1799         PR other/4372
1800         * varasm.c (assemble_alias): Use %q+D in the error
1801         message instead of %J and %qD.
1802
1803 2005-11-10  Richard Guenther  <rguenther@suse.de>
1804
1805         * gcse.c (free_ldst_entry): Only free hashtable if
1806         it exists.
1807
1808 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1809
1810         * function.c (assign_stack_local_1): Issue an error message if
1811         the frame size overflows in the signed target arithmetics.
1812
1813 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1814
1815         * tree.c (build_qualified_type): Chain the new type to the original
1816         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
1817         a POINTER_TYPE or a REFERENCE_TYPE respectively.
1818         (build_pointer_type_for_mode): Only return unqualified types.
1819         (build_reference_type_for_mode): Likewise.
1820
1821 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
1822
1823         * Makefile.in (gnucompare): Do comparison of all files using one of
1824         the chosen methods and only afterwards decide if just warning should
1825         be issued or comparison failure raised.
1826
1827 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1828
1829         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
1830         (noce_try_abs): Negate if the comparison is reversed.
1831         Look only one instruction backwards for a REG_EQUAL note.
1832
1833 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
1834
1835         PR other/4372
1836         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
1837         gthr-tpf.h: Define __gthrw.  For all identifiers that might
1838         be weak, introduce weakrefs or non-weak aliases with __gthrw,
1839         and prefix all uses with __ghtrw.
1840
1841 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
1842
1843         PR other/4372
1844         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
1845         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
1846         * c-common.c (handle_weakref_attribute): New.
1847         (c_common_attribute_table): Add weakref.
1848         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
1849         in the assembler.
1850         * configure, config.in: Rebuilt.
1851         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
1852         * doc/extend.texi: Document weakref attribute.
1853         * varasm.c (ultimate_transparent_alias_target): New
1854         (assemble_name): Use it.
1855         (weak_finish_1): Split out of...
1856         (weak_finish): ... and deal with weakrefs in...
1857         (weakref_targets): ... new list.
1858         (globalize_decl): Clean up weakref_targets.
1859         (do_assemble_alias): Handle weakrefs.
1860         (finish_aliases_1): Do not reject weakrefs to external symbols.
1861         (assemble_alias): Handle weakrefs.
1862
1863 2005-11-09  Richard Guenther  <rguenther@suse.de>
1864
1865         PR tree-optimization/24716
1866         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
1867         t_bool to track results from follow_ssa_edge.
1868
1869 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1870
1871         * final.c (force_source_line): New global variable.
1872         (final_scan_insn): Set it to true instead of clearing last_filename.
1873         (notice_source_line): Return true if force_source_line is true,
1874         unless source info is absent.
1875
1876 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
1877
1878         PR c/24644
1879         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
1880         a linkage name for a variable if it a register variable.
1881         * c-decl.c (grokdeclarator): Global register variables
1882         should be set as PUBLIC.
1883
1884 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1885
1886         PR 24624
1887         * config/s390/s390.c (struct s390_frame_layout): New fields
1888         first_save_gpr_slot and last_save_gpr_slot.
1889         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
1890         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
1891         first_save_gpr and last_save_gpr with the _slot variants.
1892         (s390_register_info): Calculate first_save_gpr_slot and
1893         last_save_gpr_slot using regs_ever_live.
1894
1895 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1896
1897         PR 24623
1898         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
1899         for a function containing a landing pad.
1900
1901 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1902
1903         PR 24034
1904         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
1905         is live afterwards.
1906
1907 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
1908
1909         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
1910         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
1911
1912 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
1913
1914         Add ms2 support
1915         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
1916         constants.
1917         (call,load,store): New insn types.
1918         (mem_access, branch_access): Adjust reservation conditions.
1919         (define_delay): Adjust condition.
1920         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
1921         type.
1922         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
1923         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
1924         insn type.
1925         (call_internal, call_value_internal, return_internal,
1926         return_interrupt_internal, eh_return_internal, indirect_jump,
1927         tablejump): Set call insn type.
1928         (blockage, ei, di): Use appropriate unspec const.
1929         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
1930         (ms1_get_attr_type): Adjust to give load & store types.
1931         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
1932         backwards past a barrier.
1933         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
1934         branch scheduling.
1935         (struct branch_info, struct label_info): New.
1936         (ms1_labels): New.
1937         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
1938         (ms1_machine_reorg): New.
1939         (TARGET_MACHINE_DEPENDENT_REORG): Override.
1940         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
1941         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
1942         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
1943         (TARGET_MS2): New.
1944
1945 2005-11-09  Per Bothner  <per@bothner.com>
1946             Uros Bizjak  <uros@kss-loka.si>
1947
1948         PR c/24101
1949         * toplev.c (process_options): Initialize debug_hooks early
1950         in case lang_hooks.post_options ends up calling a debug_hook.
1951
1952 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
1953
1954         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
1955         DBX_REGISTER_NUMBER being contiguous.
1956
1957 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
1958             Diego Novillo  <dnovillo@redhat.com>
1959
1960         PR 23046
1961         * tree-vrp.c (register_edge_assert_for): Do not register
1962         always-false predicates.
1963
1964 2005-11-08  Devang Patel <dpatel@apple.com>
1965
1966         PR tree-optimization/23115
1967         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
1968         relation.
1969
1970 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
1971
1972         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
1973         -mcpu=440.
1974
1975 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
1976
1977         Fix PR tree-optimization/23382
1978
1979         * tree-ssa-alias.c (compute_may_aliases): Call
1980         delete_old_heap_vars.
1981         * tree-dfa.c (referenced_var_remove): New function.
1982         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
1983         * tree-flow.h (referenced_var_remove): Add prototype.
1984         (delete_old_heap_vars): Ditto.
1985         * tree-ssa-structalias.c (heapvars): New variable.
1986         (oldheapvars): Ditto.
1987         (get_constraint_for): Put heap vars on heapvars list.
1988         (delete_old_heap_vars): New function.
1989
1990 2005-11-08  Jason Merrill  <jason@redhat.com>
1991
1992         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
1993
1994 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
1995
1996         PR target/19340
1997         * reg-stack.c (reg_to_stack): Update register liveness also
1998         for flag_sched2_use_traces.
1999
2000 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
2001
2002         PR target/23704
2003         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
2004         override prior explicit -mno-powerpc-gfxopt.
2005
2006 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
2009         if the bitsize is zero.
2010         * doc/md.texi (Standard Pattern Names): Document it.
2011
2012         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
2013         (TARGET_PASS_BY_REFERENCE): Likewise.
2014
2015 2005-11-07  Ian Lance Taylor  <ian@airs.com>
2016
2017         PR rtl-optimization/24683
2018         * config/i386/i386.c (legitimize_pic_address): If constant operand
2019         to PLUS is too large, put it in a register.
2020
2021 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
2022
2023         * configure.ac: Enable checking assembler dwarf2 support for bfin
2024         target.
2025         * configure: Regenerate.
2026
2027 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
2028
2029         PR target/24230
2030
2031         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
2032         gen_easy_vector_constant_add_self): Delete.
2033         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
2034         New.
2035         (output_vec_const_move): Use gen_easy_altivec_constant.
2036         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
2037         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
2038         (easy_vector_constant_add_self): Rewritten.
2039         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
2040         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
2041         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
2042         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
2043         Macroize and adjust for the other changes.
2044
2045 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
2046
2047         PR c/24599
2048
2049         * c-typeck.c (build_c_cast): Try using a shared constant, and see
2050         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
2051
2052 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
2053
2054         PR rtl-optimization/23567
2055         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
2056         (noce_process_if_block): Don't do any optimizations except
2057         if (cond) x = x; if !set_b and write into orig_x may trap
2058         or fault.  Remove the MEM_READONLY_P check.
2059
2060 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
2061
2062         PR 24670
2063         * tree-vrp.c (fix_equivalence_set): New.
2064         (extract_range_from_assert): Call it.
2065
2066 2005-11-05  Ian Lance Taylor  <ian@airs.com>
2067
2068         PR target/22432
2069         * combine.c (apply_distributive_law): Don't distribute across a
2070         vector mode subreg.
2071
2072 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
2073
2074         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
2075         config/ms1/ms1.h, config/rs6000/predicates.md,
2076         config/s390/s390.c, params.def, postreload-gcse.c,
2077         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
2078         tree-vrp.c, tree.c: Fix comment typos.
2079         * doc/invoke.texi: Fix typos.
2080
2081 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
2082
2083         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
2084         for testing whether the data_dependence_relation contains distance
2085         vectors.  Iterate over all distance vectors of the ddr.
2086         * lambda.h: Define a vec of lambda_vector pointers.
2087         * tree-data-ref.c (dump_data_dependence_relation,
2088         dump_data_dependence_direction): Iterate over all distance and
2089         direction vectors of the ddr.
2090         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
2091         DDR_DIST_VECTS.
2092         (build_classic_dist_vector, build_classic_dir_vector): Push a set
2093         of distance/direction vectors instead of a single one.
2094         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
2095         lambda_vectors with a vec of lambda_vectors.
2096         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
2097         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
2098         DDR_NUM_DIST_VECTS): New.
2099         * tree-loop-linear.c (gather_interchange_stats): Test for the
2100         existence of distance vectors only after having checked that there
2101         is a dependence.  Iterate over all distance vectors of the ddr.
2102         (linear_transform_loops): Use dump_data_dependence_relation.
2103         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
2104         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
2105         distance vectors of the ddr.
2106
2107 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2108
2109         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
2110         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
2111         IS_INTHANDLER; all callers changed.
2112         (n_regs_saved_by_prologue): Take interrupt handler attributes into
2113         account.
2114         (do_link, do_unlink): New argument ALL; all callers changed.
2115         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
2116         If function isn't leaf, save and restore all registers.
2117         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
2118         exception handler.
2119
2120 2005-11-05  Jan Hubicka  <jh@suse.cz>
2121
2122         PR rtl-optimization/23490
2123         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
2124         max-flow-memory-location): Document.
2125         * flow.c: Include params.h
2126         (MAX_MEM_SET_LIST_LEN): Kill.
2127         (add_to_mem_set_list): Use new param.
2128         * cse.c (cse_basic_block): Replace 1000 by new param.
2129         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
2130         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
2131         * predict.c (predict_loops): Use new param.
2132         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
2133
2134         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
2135         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2136         Do not hold memory returned by cgraph_node_name across other call.
2137
2138 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
2139
2140         PR target/23424
2141         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
2142         Disable.
2143
2144 2005-11-04  Jeff Law  <law@redhat.com>
2145
2146         PR/21883
2147         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
2148         * tree-ssa-dom.c: Include params.h.
2149         (thread_across_edge): If there are too many statements in the
2150         target block, then do not thread through it.
2151         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
2152         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
2153
2154 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
2155
2156         PR 24627
2157         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
2158         TODO_update_ssa instead of TODO_update_ssa_no_phi.
2159
2160 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
2161
2162         PR/18595
2163         * tree-scalar-evolution.c (instantiate_parameters_1,
2164         instantiate_parameters, resolve_mixers): Compute the size of an
2165         expression to be instantiated and give up the instantiation if the
2166         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2167
2168 2005-11-04  Richard Guenther  <rguenther@suse.de>
2169
2170         * tree-flow.h (ref_contains_indirect_ref): Rename to
2171         array_ref_contains_indirect_ref.
2172         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
2173         (array_ref_contains_indirect_ref): Make comment match the code
2174         and vice-versa.
2175         (ref_contains_array_ref): Likewise.
2176         * tree-ssa-structalias.c (find_func_aliases): Remove call to
2177         ref_contains_indirect_ref.
2178         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
2179         Rename calls to ref_contains_indirect_ref.
2180
2181 2005-11-04 Paul Brook  <paul@codesourcery.com>
2182
2183         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
2184         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
2185         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
2186         * config/arm/arm.md: Use match_operand in peephole input templates
2187         and match_dup in peephole output templates.
2188
2189 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
2190
2191         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
2192         __aeabi_uidiv.
2193
2194 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
2195             Daniel Jacobowitz  <dan@codesourcery.com>
2196
2197         * longlong.h (add_ssaaaa): Clobber condition code register
2198         in ARM version.
2199         (sub_ddmmss): Likewise.
2200         (umul_ppmm): Likewise.
2201
2202 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
2203             Paul Brook  <paul@codesourcery.com>
2204             Phil Blundell  <pb@reciva.com>
2205
2206         * configure.ac: Add test for ARM TLS support.
2207         * configure: Regenerated.
2208         * config/arm/arm-protos.h (legitimize_tls_address)
2209         (arm_tls_referenced_p, tls_mentioned_p)
2210         (arm_output_addr_const_extra): New prototypes.
2211         (thumb_legitimize_pic_address): Delete.
2212         * config/arm/arm.c: Include "gt-arm.h".
2213         (enum tls_reloc): New.
2214         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
2215         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
2216         (arm_call_tls_get_addr, legitimize_tls_address)
2217         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
2218         (arm_init_tls_builtins, arm_emit_tls_decoration)
2219         (arm_output_addr_const_extra): New functions.
2220         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
2221         (TARGET_HAVE_TLS): Define.
2222         (target_thread_pointer): New.
2223         (arm_override_options): Handle -mtp=.
2224         (legitimize_pic_address): Ignore UNSPECs.
2225         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
2226         relative symbols.
2227         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
2228         (tls_get_addr_libfunc): New variable.
2229         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
2230         (arm_init_builtins): Call arm_init_tls_builtins.
2231         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
2232         (arm_encode_section_info): Call default_encode_section_info.
2233         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
2234         (enum arm_tp_type): New.
2235         (target_thread_pointer): Add declaration.
2236         (LEGITIMATE_CONSTANT_P): Handle TLS.
2237         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
2238         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
2239         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
2240         * config/arm/arm.md: Add UNSPEC_TLS.
2241         (movsi): Handle TLS.
2242         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
2243         non-PIC.
2244         (tls_load_dot_plus_eight): New insn and a peephole to create it.
2245         (load_tp_hard, load_tp_soft): New insns.
2246         * arm.opt: Add -mtp=.
2247         * doc/invoke.texi (ARM Options): Document -mtp.
2248
2249 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
2250
2251         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
2252         * config/arm/libunwind.S: Include "lib1funcs.asm".
2253         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
2254         (LIB2ADDEH): Add libunwind.S.
2255         (LIB2ADDEHDEP): Add lib1funcs.asm.
2256         * mklibgcc.in: Handle asm files in libgcc_eh.a.
2257
2258 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2259
2260         PR fortran/18452
2261         * gcc/c.opt: Add a -lang-fortran option.
2262         * gcc/c-opts.c: Add a lang_fortran flag.
2263         (c_common_init_options): Handling the -lang-fortran option.
2264         (c_common_handle_option): Add a case for Fortran options in
2265         preprocessing. Remove cases for -ffixed-form and
2266         -ffixed-line-length. Add a case for -lang-fortran.
2267
2268 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
2269
2270         * config/rs6000/rs6000.c: Include params.h
2271         (optimization_options): Set max-grow-copy-bb-insns default to 16.
2272         (bdesc_2arg): Delete vpkuhss and vpkuwss.
2273         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
2274         (UNSPEC_VPKUWSS): Delete.
2275         (altivec_vpkuhss): Delete.
2276         (altivec_vpkuwss): Delete.
2277         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
2278         final condition.
2279         (neg_eq0<mode>): Remove final condition.
2280         (neg_eq<mode>): Remove condition and split-condition.
2281
2282 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
2283
2284         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
2285         Use associated print macros.
2286
2287 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
2288
2289         PR c++/17964
2290         * diagnostic.c (diagnostic_set_info_translated): New function.
2291         (diagnostic_set_info): Use it.  Add comment.
2292         * diagnostic.h (diagnostic_set_info_translated): Declare.
2293
2294 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2295
2296         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
2297         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
2298         reference only if 'public' is true.
2299         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
2300         emit the .hidden directive only if the indirect reference is public.
2301         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
2302         Pass it to dw2_force_const_mem.
2303         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
2304         * dwarf2out.c (output_cfi): Adjust calls to above function.
2305         (output_call_frame_info): Likewise.
2306         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
2307         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
2308
2309 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
2310
2311         PR tree-optimization/24483
2312         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
2313         field to elts if possible.
2314
2315 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2316
2317         PR middle-end/23155
2318         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
2319         CONSTRUCTOR.
2320
2321 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
2322
2323         Fix PR tree-optimization/24351
2324
2325         * tree-ssa-structalias.c (struct variable_info): Add
2326         collapsed_into.
2327         (get_varinfo_fc): New function to follow collapsing.
2328         (new_var_info): Set collapsed_to to NULL.
2329         (dump_constraint): Follow collapsing.
2330         (build_constraint_graph): Handle collapsing.
2331         (do_simple_structure_copy): Return false if something bad
2332         happened.
2333         (collapse_rest_of_var): New function.
2334         (do_structure_copy): Collapse if do_simple_structure_copy returns
2335         false.
2336
2337 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2338
2339         PR middle-end/24589
2340         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
2341         expressions to a statement list instead of gimplifying them.
2342
2343 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2344
2345         PR rtl-optimization/23585
2346         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
2347         that can't trap plus a constant integer, if the mode has zero size.
2348
2349 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
2350
2351         PR target/24620
2352         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
2353         as operand 2.
2354         ("*insv<mode>_reg_extimm"): Likewise.
2355
2356 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
2357
2358         PR c/24329
2359         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
2360         c_common_type_for_mode returns an unnamed type.
2361
2362 2005-11-02  Richard Henderson  <rth@redhat.com>
2363
2364         PR target/9350
2365         PR target/24374
2366         * dwarf2out.c (dwarf2out_reg_save_reg): New.
2367         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
2368         * function.c (assign_parms): Use calls.internal_arg_pointer.
2369         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
2370         code.
2371         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
2372         (TARGET_CALLS): Add it.
2373         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
2374         * targhooks.c (default_internal_arg_pointer): New.
2375         * targhooks.h (default_internal_arg_pointer): Declare.
2376         * tree.h (dwarf2out_reg_save_reg): Declare.
2377         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
2378         * config/i386/i386.c (dbx_register_map): Add return column.
2379         (dbx64_register_map, svr4_dbx_register_map): Likewise.
2380         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
2381         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
2382         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
2383         (ix86_save_reg): Save force_align_arg_pointer.
2384         (ix86_emit_save_regs): Make regno unsigned.
2385         (ix86_emit_save_regs_using_mov): Likewise.
2386         (ix86_expand_prologue): Handle force_align_arg_pointer.
2387         (ix86_expand_epilogue): Likewise.
2388         * config/i386/i386.h: (dbx_register_map): Update.
2389         (dbx64_register_map, svr4_dbx_register_map): Update.
2390         (struct machine_function): Add force_align_arg_pointer.
2391         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
2392         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
2393         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
2394
2395 2005-11-02  Jan Hubicka  <jh@suse.cz>
2396
2397         PR target/23303
2398         * i386.md: Add peep2 for simplyfing array accesses.
2399
2400 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
2401
2402         PR target/24615
2403         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
2404         * config/s390/s390.c (s390_decompose_shift_count): New function.
2405         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
2406         (print_shift_count_operand): Use s390_decompose_shift_count.
2407         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
2408         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
2409
2410 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
2411
2412         PR target/24600
2413         * loop.c (loop_givs_rescan): Use force_operand to expand
2414         complex GIVs.
2415
2416 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
2417
2418         PR 22429
2419         * fold-const.c (build_range_check): Use unsigned when signed
2420         overflow is undefined also.  If etype is subtype, make sure that
2421         the subtraction is in the supertype.
2422
2423 2005-11-02  Richard Henderson  <rth@redhat.com>
2424
2425         PR target/24178
2426         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
2427         by MEM_ALIGN.
2428
2429 2005-11-01  Richard Henderson  <rth@redhat.com>
2430
2431         PR 21518
2432         * loop.c (scan_loop): Do not propagate computations to a hard
2433         register destination with SMALL_REGISTER_CLASSES.
2434
2435 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
2436
2437         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
2438         costs for MULT inside PLUS or MINUS.
2439
2440 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
2441
2442         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
2443         (TRAMPOLINE_SIZE): Round up to 60.
2444         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
2445
2446 2005-10-31  James E. Wilson  <wilson@specifix.com>
2447
2448         PR debug/24444
2449         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
2450         ifdef.  Put ifdefs around call in gen_subprogram_die.
2451         (compute_frame_pointer_to_cfa_displacement): Likewise.
2452         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
2453         not defined.
2454
2455         PR rtl-optimization/17356
2456         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
2457         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
2458
2459 2005-10-31  Jan Hubicka  <jh@suse.cz>
2460
2461         PR middle-end/24093
2462         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
2463
2464         PR target/20928
2465         * i386.c (legitimize_pic_address): Deal with large immediates.
2466
2467         PR profile/20815
2468         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
2469         from symbol names while computing checkup.
2470
2471         PR profile/24487
2472         * predict.c (predict_loops): Do not estimate more than
2473         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
2474         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
2475
2476 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
2477
2478         PR tree-optimization/19097
2479         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
2480
2481 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
2482
2483         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
2484
2485 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
2486
2487         PR middle-end/23492
2488         * tree-inline.c (setup_one_parameter): If the init_stmt
2489         is NULL, don't insert the statement.
2490
2491 2005-10-30  Jan Hubicka  <jh@suse.cz>
2492
2493         PR tree-optimization/24172
2494         * tree-inline.c (copy_body_r): Unshare the substituted value first.
2495
2496 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
2497
2498         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
2499         constants for hosts with long != 32 bits.
2500
2501 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
2502
2503         PR middle-end/24093
2504         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
2505
2506 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
2507
2508         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
2509         (TARGET_MS1_16_002): New.
2510         (TARGET_MS1_16_003): New.
2511
2512         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
2513         ("*decrement_and_branch_until_zero_no_clobber"): New.
2514         Add corresponding splitter for decrement_and_branch_until_zero
2515         instruction.
2516         Key all decrement_and_branch_until_zero patterns off of
2517         TARGET_MS1_16_003.
2518
2519 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
2520
2521         PR middle-end/24362
2522         * tree-complex.c (extract_component): Treat RESULT_DECL
2523         like the rest of the decls.
2524
2525 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
2526
2527         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
2528         indirect call to _mcount if the function needs a static chain.
2529
2530 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2531             Caroline Tice  <ctice@apple.com>
2532
2533         PR rtl-optimization/24460
2534         * dwarf2out.c (have_switched_text_sections): New boolean variable.
2535         (dwarf2out_switch_text_section): Set it to true instead of
2536         incrementing separate_line_info_table_in_use.
2537         (output_loc_list): Additionally test have_switched_text_sections.
2538         (output_ranges): Likewise.
2539         (dwarf2out_finish): Likewise.
2540         * varasm.c (assemble_start_function): Do not call
2541         insert_section_boundary_note.
2542         (assemble_end_function): If flag_reorder_blocks_and_partition,
2543         switch to the function's section before emitting the .size directive.
2544         * bb-reorder.c (insert_section_boundary_note): Staticify.
2545         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
2546         * output.h (insert_section_boundary_note): Delete.
2547
2548 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
2549
2550         PR c/23103
2551         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
2552         instead of pointer equality when comparing types.
2553
2554 2005-10-24  James E. Wilson  <wilson@specifix.com>
2555
2556         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
2557         add_dependence_list_and_free calls.
2558
2559 2005-10-24  Steven Bosscher  <stevenb@suse.de>
2560
2561         * contrib.texi: Add the names of the LLNL folks who donated
2562         Cray pointer support for gfortran.
2563
2564 2005-10-24  Steven Bosscher  <stevenb@suse.de>
2565
2566         PR tree-optimization/24225
2567         * profile.c (branch_prob): Look from end to start through a
2568         basic block when looking for a locus.
2569
2570 2005-10-24  Richard Henderson  <rth@redhat.com>
2571
2572         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
2573         parallel.
2574         (hppa_expand_prologue): Likewise.
2575
2576 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2577
2578         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
2579         (NO_DEFERRED_PROFILE_COUNTERS): Define.
2580         * pa.h (NO_PROFILE_COUNTERS): Define.
2581         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
2582         (funcdef_nos): New vector to hold label numbers of deferred profile
2583         counters.
2584         (output_deferred_profile_counters): New function.
2585         (hppa_profile_hook): Push label number onto funcdef_nos.
2586         (pa_hpux_file_end): Call output_deferred_profile_counters if
2587         NO_DEFERRED_PROFILE_COUNTERS is false.
2588
2589         * pa-protos.h (get_deferred_plabel): New prototype.
2590         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
2591         Make global.
2592         (output_call): Adjust calls.
2593
2594 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
2595
2596         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
2597         peculiarity of GOT/TOC section usage.
2598
2599 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
2600
2601         PR objc/24435
2602          * c-common.c (constant_string_class_name): Add documentation.
2603
2604 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
2605
2606         PR target/23832
2607         * recog.c (peephole2_optimize): Increment peep2_current_count
2608         only when the slot is empty.
2609
2610 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2611
2612         PR ada/23957
2613         * except.c (output_function_exception_table): Call
2614         assemble_external_libcall if we need a personality function.
2615
2616 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2617
2618         PR rtl-optimization/24460
2619         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
2620         set the basic block for barriers.
2621
2622 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
2623
2624         * var-tracking.c (vt_initialize): Initialize post.
2625
2626 2005-10-21  Devang Patel  <dpatel@apple.com>
2627
2628         PR/24220
2629         * c-common.c (vector_types_convertible_p): Check vector element type.
2630
2631 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2632
2633         * config/sh/sh.c (prepare_move_operands): Handle the address
2634         constant which is a tls symbolic address plus a constant.
2635
2636 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2637
2638         PR driver/24473
2639         * gcc.c (main): Use the correct counter for erroring out
2640         about mulitple files.
2641
2642 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
2643
2644         PR target/24465
2645         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
2646         use r2 for 64-bit tls .got access.
2647
2648 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
2649
2650         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
2651         TRUTH_OR_EXPR.
2652
2653 2005-10-20  Steven Bosscher  <stevenb@suse.de>
2654
2655         PR tree-optimization/24307
2656         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
2657
2658 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
2659
2660         PR middle-end/24295
2661         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
2662         alias targets.
2663         * varasm.c (find_decl_and_mark_needed): After cgraph global info
2664         is ready, stop marking functions, but still mark variables.
2665
2666 2005-10-20  Richard Guenther  <rguenther@suse.de>
2667
2668         PR c++/24439
2669         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
2670         void type operands.
2671
2672 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2673
2674         PR rtl-optimization/23585
2675         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
2676         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
2677         (may_trap_p_1): New predicate extracted from...
2678         (may_trap_p): ... here.  Invoke may_trap_p_1.
2679         (may_trap_or_fault_p): New predicate.
2680         * rtl.h (may_trap_or_fault_p): Declare it.
2681         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
2682         instead of may_trap_p.
2683         (steal_delay_list_from_fallthrough): Likewise.
2684         (fill_simple_delay_slots): Likewise.
2685         (fill_slots_from_thread): Likewise.
2686         * function.c (pad_to_arg_alignment): Rework comment about
2687         SPARC_STACK_BOUNDARY_HACK.
2688         * config/sparc/sparc.h: Likewise.
2689
2690 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
2691
2692         * config/s390/s390.c (s390_expand_insv): New.
2693         * config/s390/s390-protos.h (s390_expand_insv): Declare.
2694         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
2695         ("icm_hi"): Remove mode attribute.
2696         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
2697         Adjust all uses.
2698         ("*extracthi", "*extractqi"): Remove.
2699         (extv<mode>", "*extzv<mode>"): New.
2700         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
2701         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
2702
2703 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2704
2705         * cfgexpand.c (discover_nonconstant_array_refs_r,
2706         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
2707         (tree_expand_cfg): Call discover_nonconstant_array_refs.
2708         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2709         discover_nonconstant_array_refs.
2710
2711 2005-10-19  Steven Bosscher  <stevenb@suse.de>
2712
2713         PR c/23228
2714         * c-decl.c (pop_scope): Don't warn about an unused variable
2715         if it is marked with TREE_NO_WARNING.
2716         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
2717         somenow mismatch and olddecl is to be replaced.
2718
2719 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
2720
2721         PR middle-end/23199
2722         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
2723         whether registers live on the edge can be saved/restored.
2724
2725 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2726
2727         * config/sh/sh.c (fixup_mova): Skip notes.
2728
2729 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2730
2731         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
2732         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
2733         (s390_can_eliminate): Handle BASE_REGNUM elimination.
2734         (s390_initial_elimination_offset): Likewise.
2735         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
2736         register on TARGET_ZARCH targets.
2737         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
2738         (INITIAL_FRAME_POINTER_OFFSET): Remove.
2739         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
2740         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
2741
2742 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2743
2744         * config/s390/s390.md: Comment describing output modifiers updated.
2745         * config/s390/s390.c (print_operand): Likewise.
2746
2747 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2748
2749         * config/s390/s390.c (override_options): Added check for -mstack-size
2750         64k limitation.
2751         * doc/invoke.texi: Mention that limit in the documenation.
2752
2753 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
2754
2755         PR #19672
2756         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
2757
2758 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
2759
2760         Fix PR tree-optimization/24231
2761
2762         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
2763         (compute_avail): Ditto.
2764
2765 2005-10-18  Richard Henderson  <rth@redhat.com>
2766
2767         PR target/24428
2768         * config/i386/i386.c (legitimate_constant_p): Check
2769         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
2770         if LABEL_REF.
2771         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
2772         (legitimate_pic_address_disp_p): Reorg CONST checking to make
2773         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
2774         directly.
2775         (print_operand_address): Likewise.
2776         * config/i386/predicates.md (x86_64_immediate_operand): Test
2777         SYMBOL_REF_TLS_MODEL properly inside CONST.
2778         (x86_64_zext_immediate_operand): Likewise.
2779         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
2780         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
2781         * config/i386/i386-protos.h: Remove predicates.md entries.
2782
2783 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
2784
2785         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
2786         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
2787
2788 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2789             Ian Lance Taylor <ian@airs.com>
2790
2791         PR middle-end/23522
2792         * fold-const.c (fold_widened_comparison): Do not allow range based
2793         constant folding when right operand cannot be unwidened.
2794
2795 2005-10-17  Richard Henderson  <rth@redhat.com>
2796
2797         * builtins.c (expand_builtin_synchronize): Build a new-style asm
2798         with a memory clobber.
2799
2800 2005-10-17  James E Wilson  <wilson@specifix.com>
2801
2802         PR rtl-optimization/17356
2803         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
2804         checking for EDGE_EH.
2805
2806 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2807
2808         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
2809         the slot on an even boundary for any type with 16-byte alignment.
2810
2811 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
2812
2813         PR target/23424
2814         * md.texi (Modifiers) <%>: Clarify that % doesn't work
2815         after register allocation.
2816
2817 2005-10-17  DJ Delorie  <dj@redhat.com>
2818
2819         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
2820         as frame related.
2821
2822 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
2823
2824         PR c++/22551
2825         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
2826         overflow flags.
2827
2828 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2829
2830         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
2831         to 2 if it's already non-zero.
2832         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
2833         is set and warn about it if flag_schedule_insns is 1.
2834
2835 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
2836
2837         * config/crx/crx.md: Compare-and-branch instructions need to
2838         invalidate CC.
2839
2840 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
2841
2842         PR target/24315
2843         * config/i386/i386.md (*pushdi2_rex64 splitter)
2844         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
2845         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
2846         flow2 pass only when (optimize > 0 && flag_peephole2).
2847
2848 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
2849
2850         PR driver/22544
2851         * gcc.c (have_c): New static variable.
2852         (have_o): Likewise.
2853         (process_command): Remove declation of have_c.
2854         Set have_o to 1 when handling -o.
2855         (main): Add a fatel error if there are multiple
2856         files specified and -o and -c/-S is passed witout
2857         -combine or multiple languages.
2858
2859 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
2860
2861         Fix PR tree-optimization/22444
2862         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
2863         Assert that we don't hit something with subvars.
2864         (setup_pointers_and_addressables): Don't add things with subvars,
2865         because we'll already process the subvars for aliasing purposes.
2866
2867 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
2868
2869         PR target/23424
2870         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
2871         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
2872         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
2873         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
2874         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
2875         swapped, alternatives for the R constraint.
2876
2877         PR middle-end/24341
2878         * builtins.c (get_builtin_sync_mode): Make unlimited
2879         mode_for_size request.
2880
2881 2005-10-15  Richard Henderson  <rth@redhat.com>
2882
2883         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
2884         (gimplify_expr): ... here.
2885         (gimplify_compound_lval): Use it in initial scan loop.  Allow
2886         fb_lvalue in base expression.
2887
2888 2005-10-15  Richard Henderson  <rth@redhat.com>
2889
2890         PR 23714
2891         * builtins.c (expand_builtin_trap): Export.
2892         * expr.h (expand_builtin_trap): Declare.
2893         * expr.c (expand_assignment): Emit a trap for integral offsets
2894         from registers that weren't reduced to bitpos.
2895
2896         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
2897         (mark_array_ref_addressable): Remove.
2898         * tree-flow.h (mark_array_ref_addressable): Remove.
2899         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
2900
2901 2005-10-15  James E Wilson  <wilson@specifix.com>
2902
2903         PR target/24232
2904         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
2905         (add_dependence_list_and_free): Likewise.
2906         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
2907         call.
2908
2909 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
2910
2911         PR 23141
2912         PR 23142
2913         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
2914         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
2915         anti-range.
2916         (vrp_visit_phi_node): Only prevent infinite iterations when
2917         the previous result and the new result are both VR_RANGEs.
2918
2919 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
2920
2921         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
2922         function comment.
2923
2924 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2925
2926         PR c/23439
2927         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
2928         to initialize loc.
2929
2930 2005-10-14  Per Bothner  <per@bothner.com>
2931
2932         PR preprocessor/21250
2933         * c-ppoutput.c (print_line): Print internal line 0 as 1.
2934
2935 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
2936
2937         PR c++/22551
2938         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
2939         overflow flags.  Refactor some conditionals.
2940
2941 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
2942
2943         PR tree-opt/21304
2944         * tree-dfa.c (add_referenced_var): Only look at decls which
2945         have TREE_CONSTANT or TREE_READONLY set instead of if
2946         !TREE_PUBLIC or !TREE_CONSTANT.
2947
2948 2005-10-13  James E Wilson  <wilson@specifix.com>
2949
2950         * doc/invoke.texi: For -x, add f95-cpp-input.
2951         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
2952
2953 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
2954
2955         PR tree-optimization/24262
2956         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
2957         in loop all the time.
2958
2959 2005-10-12  Richard Henderson  <rth@redhat.com>
2960
2961         PR c/24255
2962         * tree.h (DECL_TRANSPARENT_UNION): Remove.
2963         * function.c (assign_parm_find_data_types): Don't support it.
2964         * print-tree.c (print_node): Likewise.
2965         * c-common.c (handle_transparent_union_attribute): Likewise.
2966         Use build_duplicate_type.
2967         * tree-inline.c (remap_type_1): Split out of remap_type;
2968         properly remap aggregate fields.
2969         (build_duplicate_type): New.
2970         * doc/extend.texi (Variable Attributes): Remove documentation
2971         for transparent_union.
2972
2973 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2974
2975         PR target/24284
2976         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
2977         (gen_stack_pointer_dec): Likewise.
2978
2979 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
2980
2981         PR middle-end/21275
2982         PR middle-end/21766
2983         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
2984         target hook.
2985         (struct cxx): Add adjust_class_at_definition target hook.
2986         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
2987         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
2988         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
2989         hook_void_tree. Add to TARGET_CXX.
2990         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
2991         dllimport_flag.
2992         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
2993         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
2994         instead of attribute. Check for dllexport override.  Warn if
2995         inconsistent dll linkage. Don't lose old dllimport if decl has
2996         had address referenced.   Tweak lookup of dllimport atribute.
2997         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
2998         for target specific rules.  Don't add dllimport attribute if
2999         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
3000         dllimport attribute.
3001         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
3002         * varasm.c (initializer_constant_valid_p): Replace
3003         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
3004
3005         PR target/21801
3006         PR target/23589
3007         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
3008         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
3009         (i[34567]86-*-mingw32*): Likewise.
3010
3011         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
3012         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
3013
3014         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
3015         C++-specific code. Change return value to bool.
3016         (i386_pe_dllimport_p): Likewise.
3017         (associated_type): Simplify and make language-independent
3018         (i386_pe_encode_section_info): Replace override of ambiguous
3019         dllimport symbol refs with a gcc_assert.
3020         (i386_pe_valid_dllimport_attribute_p): Define.
3021         * config/i386/winnt-cxx.c: New file. Define C++ versions of
3022         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
3023         i386_pe_adjust_class_at_definition.
3024         * config/i386/winnt-stubs.c: New file. Define stub versions of
3025         lang-specific functions.
3026         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
3027         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
3028         i386_pe_adjust_class_at_definition.
3029         (i386_pe_valid_dllimport_attribute_p): Declare.
3030         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
3031         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
3032         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
3033
3034         PR target/19704
3035         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
3036         dllimport attribute with test of DECL_DLLIMPORT_P.
3037
3038 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
3039
3040         * combine.c (make_extraction): Correct offset computation.
3041
3042 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
3043
3044         * config/cris/t-linux (LIMITS_H_TEST): Define.
3045
3046 2005-10-12  Richard Henderson  <rth@redhat.com>
3047
3048         PR rtl-opt/23324
3049         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
3050
3051 2005-10-12  Richard Guenther  <rguenther@suse.de>
3052
3053         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
3054
3055 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
3056
3057         PR c++/19964
3058         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
3059         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
3060         type.
3061
3062 2005-10-12  Richard Guenther  <rguenther@suse.de>
3063
3064         PR c++/23799
3065         * varasm.c (output_constant): Correct typo from previous
3066         patch by DJ.
3067
3068 2005-10-11  Ian Lance Taylor  <ian@airs.com>
3069
3070         PR rtl-optimization/13931
3071         * combine.c: Revert patch of 2003-05-14, and:
3072         (try_combine): Only set elim_i1 and elim_i2 if the destination is
3073         completely killed in the appropriate insn.
3074         (distribute_notes): Don't skip multiple hard register test for
3075         elim_i1 and elim_i2.
3076
3077 2005-10-11  Richard Henderson  <rth@redhat.com>
3078
3079         PR c/24255
3080         * c-typeck.c (convert_for_assignment): Use build_constructor_single
3081         to initialize a transparent union instead of a nop_expr.
3082
3083 2005-10-11  Richard Henderson  <rth@redhat.com>
3084
3085         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
3086         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
3087         (tree_ssa_dce_loop): Call scev_reset.
3088
3089         PR tree-opt/24300
3090         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
3091         * tree-ssa-dce.c: Include cfgloop.h.
3092         (tree_ssa_dce_loop, pass_dce_loop): New.
3093         * tree-pass.h (pass_dce_loop): Declare it.
3094         * passes.c (init_optimization_passes): Use it.
3095
3096 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3097
3098         PR middle-end/24263
3099         * convert.c (convert_to_real): Revert 2005-10-05 patch.
3100         Only apply the optimization for rounding builtins if the inner
3101         cast is also an extension.
3102
3103 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
3104
3105         PR tree-opt/23946
3106         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
3107         mark_new_vars_to_rename instead of update_stmt.
3108
3109 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
3110
3111         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
3112
3113 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
3114
3115         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
3116         for setting MMX register to 0 rather than mmx.
3117
3118 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
3119
3120         PR target/12098
3121         * configure.ac: Move gas check from mips specific case to common case.
3122         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
3123         * configure: Regenerate
3124         * doc/install.texi: Update.
3125
3126 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3127
3128         PR target/24284
3129         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
3130
3131 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
3132
3133         * gcc.c (do_spec_1): Accept numeric characters in file name
3134         suffixes.
3135
3136 2005-10-10  Nick Clifton  <nickc@redhat.com>
3137
3138         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
3139         describing the deleted arm_gen_rotated_half_load function.
3140
3141 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
3142
3143         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
3144         __fpscr_values.
3145
3146 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
3147
3148         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
3149         gnu_ld assignments.
3150         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
3151         (EXTRA_MULTILIB_PARTS): Define.
3152         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
3153         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
3154         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
3155         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
3156         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
3157         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
3158
3159 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
3160
3161         PR tree-optimization/24226
3162         * tree-cfg.c (remove_bb): Clean up unreachable loops.
3163         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
3164         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
3165         Export.
3166
3167 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
3168
3169         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
3170
3171 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
3172
3173         PR target/24136
3174         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
3175         Rewrite for no need for the early clobber.
3176
3177 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
3178
3179         Merge from csl-arm-branch:
3180         2005-09-07  Paul Brook  <paul@codesourcery.com>
3181         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
3182         space to string.
3183
3184         2005-04-30  Paul Brook  <paul@codesourcery.com>
3185         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
3186         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
3187
3188         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
3189         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
3190         (arm_override_options): Use TARGET_AAPCS_BASED.
3191         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
3192         (PTRDIFF_TYPE): Use int for AAPCS.
3193         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
3194         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
3195         (DEFAULT_SHORT_ENUMS): Delete.
3196         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
3197
3198         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
3199         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
3200         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
3201         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
3202
3203         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
3204         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
3205
3206         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
3207         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
3208
3209         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
3210         * config.gcc (arm*-*-linux-gnueabi): Add it.
3211         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
3212         redefining it.
3213         (TARGET_OS_CPP_BUILTINS): Likeiwse.
3214         * config/arm/linux-eabi.h: New file.
3215         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
3216         (LINUX_TARET_LINK_SPEC): Likewise.
3217         (LINK_SPEC): Use it.
3218         * config/arm/t-linux-eabi: New file.
3219
3220 2005-10-08  Steven Bosscher  <stevenb@suse.de>
3221
3222         PR other/22202
3223         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
3224         spaces.
3225         (PARAM_SMS_DFA_HISTORY): Likewise.
3226
3227 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
3228
3229         PR middle-end/23150
3230         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
3231         (load_register_parameters): Call it.
3232         (check_sibcall_argument_overlap_1): Likewise.
3233         (store_one_arg): Likewise.
3234
3235 2005-10-07  James E. Wilson  <wilson@specifix.com>
3236
3237         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
3238         DImode not VECINT24 for operand 2.
3239
3240         PR target/23644
3241         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
3242         -mtune-arch.
3243
3244         PR target/24193
3245         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
3246         fr_spill): Use destination_operand for operand 0.
3247
3248 2005-10-07  DJ Delorie  <dj@redhat.com>
3249
3250         * varasm.c (output_constant): Limit error to expanding
3251         conversions.
3252
3253 2005-10-07  Richard Guenther  <rguenther@suse.de>
3254
3255         PR middle-end/24227
3256         * fold-const.c (fold_binary): Fix operand types during folding
3257         of X op (A, Y).  Evaluation order of the side-effects of
3258         X and A are frontend-defined, so ensure we honour that even for
3259         tcc_comparison class operands; eased by removing duplicate code.
3260
3261 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
3262
3263         * stor-layout.c (layout_type): Do not allow alignment of array
3264         elements to be greater than their size.
3265
3266 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
3267
3268         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
3269         host_xmake_file.
3270         (hppa*-*-linux*): Ditto.
3271         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
3272         * config/host-hpux.c: New.
3273         * config/x-hpux: New.
3274         * config/pa/x-hpux: Remove.
3275         * config/pa/x-linux: Remove.
3276         * config/pa/pa-host.c: Remove.
3277
3278 2005-10-07  Jeff Law  <law@redhat.com>
3279
3280         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
3281         determine whether or not to try and thread outgoing edges.
3282
3283 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
3284
3285         * config/rs6000/rs6000.md (eqsi_power): New.
3286         (neg_eq0si): Add TARGET_POWER to final condition.
3287         (neg_eqsi): Same.
3288
3289 2005-10-06  Richard Henderson  <rth@redhat.com>
3290
3291         * config/rs6000/rs6000.c: Revert last change.
3292
3293 2005-10-06  Richard Henderson  <rth@redhat.com>
3294
3295         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
3296         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
3297
3298 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
3299
3300         PR middle-end/22216
3301         PR middle-end/23651
3302         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
3303         out return_label and naked_return_label.
3304
3305 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
3306
3307         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
3308         change.
3309
3310 2005-10-06  Richard Henderson  <rth@redhat.com>
3311
3312         PR tree-opt/22237
3313         * tree-inline.c (declare_return_variable): Handle modify_dest not
3314         being a DECL.
3315
3316 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
3317
3318         Fix PR tree-optimization/22488
3319         * tree-ssa-structalias.c (check_for_overlaps): New function.
3320         (create_variable_info_for): Use it.
3321
3322 2005-10-06  Richard Henderson  <rth@redhat.com>
3323
3324         PR debug/24070
3325         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
3326         (dwarf2out_start_source_file): Print it.
3327
3328 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
3329
3330         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
3331
3332 2005-10-06  Richard Henderson  <rth@redhat.com>
3333
3334         PR 23706
3335         * mode-switching.c (optimize_mode_switching): Clear transp bit
3336         for block with incomming abnormal edges.
3337
3338         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
3339         (fpscr_set_from_mem): Use them.
3340         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
3341         (fpscr postinc splitters): Rewrite as peephole2+split.
3342
3343 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
3344
3345         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
3346         (eq<mode>_compare): Same.
3347
3348 2005-10-06  Richard Guenther  <rguenther@suse.de>
3349
3350         PR tree-optimization/24238
3351         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
3352
3353 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
3354
3355         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
3356         here.  Use AC_PATH_PROG for environment variables instead of
3357         test -x.
3358         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
3359         objdump also.
3360         * configure: Regenerated.
3361
3362 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
3363
3364         PR target/23783
3365         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
3366         then force it into a register.
3367         (call_value): Likewise.
3368
3369 2005-10-06  Richard Henderson  <rth@redhat.com>
3370
3371         PR 24049
3372         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
3373         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
3374         under pass_vectorize.
3375
3376 2005-10-05  Devang Patel  <dpatel@apple.com>
3377
3378         PR Debug/23205
3379         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
3380         handling constants. Check NAMESPACE_DECL context for constants.
3381
3382 2005-10-05  Eric Christopher  <echristo@apple.com>
3383
3384         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
3385
3386 2005-10-05  Richard Henderson  <rth@redhat.com>
3387
3388         PR 23714
3389         * tree-cfg.c (mark_array_ref_addressable_1): New.
3390         (mark_array_ref_addressable): New.
3391         * tree-flow.h (mark_array_ref_addressable): Declare.
3392         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
3393
3394 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
3395
3396         PR middle-end/20606
3397         PR middle-end/24069
3398         * reload.c (subst_reloads): When adding a REG_LABEL to a
3399         jump instruction, also update JUMP_LABEL.
3400
3401 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
3402
3403         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
3404         * bb-reorder.c (copy_bb_p): Use it.
3405         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
3406
3407 2005-10-05  Richard Henderson  <rth@redhat.com>
3408
3409         PR target/23602
3410         * toplev.c (process_options): Warn about unsupported combinations
3411         of unwind tables and omit-frame-pointer.
3412         * config/i386/i386.c (override_options): Similarly.  Enable
3413         accumulate-outgoing-args if not explicitly disabled.
3414
3415 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
3416
3417         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
3418         Handle big endian vs. small endian.
3419         (vec_initv2sf): Handle big endian vs. small endian.
3420         (*vec_extractv2sf_1): Ditto.
3421
3422 2005-10-05  Dale Johannesen  <dalej@apple.com>
3423
3424         * convert.c (convert_to_real):  Don't convert
3425         (float)floor(double d) to floorf((float)d).
3426
3427 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
3428
3429         * config/arm/arm.md (insv): Use gen_int_mode in more places.
3430
3431 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
3432
3433         PR tree-optimization/18587
3434         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
3435         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
3436         build_vuses): Change to VEC type.
3437         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
3438         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
3439         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
3440         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
3441         (get_name_decl): New.  Return DECL_UID of base variable.
3442         (operand_build_cmp): New.  qsort comparison routine.
3443         (operand_build_sort_virtual): New.  Sort virtual build vector.
3444         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
3445         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
3446         (FINALIZE_BASE): Use get_name_decl.
3447         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
3448         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
3449         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
3450         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
3451         direct VEC_* manipulations.
3452         (build_ssa_operands): Call operand_build_sort_virtual.
3453         (copy_virtual_operand, create_ssa_artficial_load_stmt,
3454         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
3455         with direct VEC_* manipulations.
3456         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
3457         with direct VEC manipulations.
3458
3459 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
3460
3461         PR tree-optimization/21419
3462         PR tree-optimization/24146
3463         PR tree-optimization/24151
3464
3465         * c-typeck.c (readonly_error): Handle USE being lv_asm.
3466         (build_asm_expr): Call it if outputs are read-only.
3467         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
3468
3469 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
3470             Paolo Bonzini  <bonzini@gnu.org>
3471
3472         PR target/23809
3473
3474         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
3475         enable the instructions and not just the built-ins.
3476         * doc/invoke.texi (x86 Options): Likewise.
3477
3478 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
3479
3480         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
3481
3482         * doc/invoke.texi (Option Summary): Correct spelling
3483         of -mmacosx-version-min.
3484
3485 2005-10-04  Devang Patel  <dpatel@apple.com>
3486
3487         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
3488         real types.
3489
3490 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
3491
3492         * tree-vect-transform.c (vect_create_epilog_for_reduction):
3493         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
3494
3495 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
3496
3497         * config/s390/s390.md ("TDSI","DP"): New mode macros.
3498         ("TE","tg"): New mode attributes.
3499         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
3500         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
3501         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
3502         dword_mode and one for GPRmode.
3503
3504 2005-10-04  Ian Lance Taylor  <ian@airs.com>
3505
3506         PR preprocessor/13726
3507         * c-ppoutput.c (cb_include): Add comments parameter, and print out
3508         any comments passed in.
3509
3510 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
3511
3512         * tree.c (annotate_with_file_line): Fix typo.
3513
3514 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3515
3516         PR ada/19382
3517         * builtins.c (fold_builtin_memcmp): When constructing the pointer
3518         type used to access data in the inlined length == 1 case, use
3519         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
3520         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
3521
3522 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
3523
3524         * config/i386/i386.h (TARGET_FISTTP): Enable also for
3525         TARGET_SSE3 and only for TARGET_80387.
3526         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
3527         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
3528         Do not depend on TARGET_80387.
3529
3530 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
3531
3532         * tree.c (last_annotated_node): Change type to location_t*.
3533         (annotate_with_file_line): Reflect the change of
3534         last_annotated_node type.
3535
3536 2005-10-04  Richard Guenther  <rguenther@suse.de>
3537
3538         PR c/23576
3539         * c-decl.c (grokdeclarator): Don't write to fields
3540         of error_mark_node.
3541
3542 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
3543
3544         PR middle-end/23125
3545         * c-decl.c (finish_decl): Use set_user_assembler_name even for
3546         register variables.
3547         * varasm.c (make_decl_rtl): If a register variable does not
3548         have a set user assmbler name, error out.
3549         Decode the asmspec is now name+1 bypassing '*'.
3550
3551 2005-10-04  Steven Bosscher  <stevenb@suse.de>
3552
3553         PR tree-optimization/23049
3554         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
3555         of a COND_EXPR is folded before calling fold on the whole rhs of a
3556         conditional assignment.
3557         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
3558         document that a COND_EXPR may appear there.
3559
3560 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
3561
3562         PR 23445
3563         * tree-vrp.c (extract_range_from_assert): If the new numeric
3564         range created out of the assertion contradicts the existing
3565         numeric range of the ASSERT_EXPR variable, make the new range
3566         varying.
3567
3568 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3569
3570         * config/sh/sh.c (sh_register_move_cost): Add case for moving
3571         from T_REGS to FP register class.
3572
3573 2005-10-03  Richard Henderson  <rth@redhat.com>
3574
3575         PR 24135
3576         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
3577         before creating a new one.
3578
3579 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
3580
3581         * config/rs6000/t-aix43 (LDFLAGS): New.
3582         * config/rs6000/t-aix52 (LDFLAGS): New.
3583
3584 2005-10-03  Ian Lance Taylor  <ian@airs.com>
3585
3586         * gimplify.c (find_single_pointer_decl_1): New static function.
3587         (find_single_pointer_decl): New static function.
3588         (internal_get_tmp_var): For a formal variable, set restrict base
3589         information if appropriate.
3590         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
3591         return it.
3592         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
3593         (DECL_GET_RESTRICT_BASE): Define.
3594         (SET_DECL_RESTRICT_BASE): Define.
3595         (decl_restrict_base_lookup): Declare.
3596         (decl_restrict_base_insert): Declare.
3597         (struct tree_decl_with_vis): Add based_on_restrict_p field.
3598         * tree.c (restrict_base_for_decl): New static variable.
3599         (init_ttree): Initialize restrict_base_for_decl.
3600         (copy_node_stat): Copy restrict base information.
3601         (decl_restrict_base_lookup): New function.
3602         (decl_restrict_base_insert): New function.
3603         (print_restrict_base_statistics): New static function.
3604         (dump_tree_statistics): Call print_restrict_base_statistics.
3605
3606 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
3607
3608         PR 24142
3609         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
3610         case of anti-ranges.
3611
3612 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
3613
3614         PR c/18851
3615         * c-typeck.c (tagged_tu_seen): Rename to ...
3616         (tagged_tu_seen_cache): this and add val field.
3617         (comptypes): Move functional to comptypes_internal
3618         and free tagged_tu_seen.
3619         (comptypes_internal): New function and call comptypes_internal
3620         instead of comptypes. Speed up by sibcalling
3621         tagged_types_tu_compatible_p.
3622         (alloc_tagged_tu_seen): New function
3623         (free_all_tagged_tu_seen_up_to): New function.
3624         (tagged_types_tu_compatible_p): Return the val of the seen two
3625         types.
3626         Add that the two types are the same to tagged_tu_seen_base
3627         if they are and call comptypes_internal instead of comptypes.
3628         <case UNION_TYPE>: Speed up common type where the fields are
3629         in the same order.
3630         (function_types_compatible_p): Call comptypes_internal instead of
3631         comptypes.
3632         (type_lists_compatible_p): Likewise.
3633         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
3634
3635 2005-10-02  Matthias Klose  <doko@debian.org>
3636
3637         * doc/invoke.texi: Fix typo and speling error.
3638
3639 2005-10-01  Richard Henderson  <rth@redhat.com>
3640
3641         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
3642
3643 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
3644
3645         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
3646         using --start-group and --end-group.
3647
3648 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
3649
3650         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
3651         FIXME note regarding quirky semantics.
3652
3653 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
3654
3655         PR 24141
3656         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
3657         non-null range as a last resort.
3658
3659 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
3660             Diego Novillo  <dnovillo@redhat.com>
3661
3662         PR 23604
3663         * tree-vrp.c (extract_range_from_assert): For !=
3664         assertions, only build an anti-range if LIMIT is a
3665         single-valued range.
3666
3667 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
3668
3669         * arm.md (movqi): On thumb when optimizing, handle loading from
3670         memory by describing this as taking a subreg of a zero-extended load
3671         into an SImode register.
3672         (movhi): Likewise.
3673
3674 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
3675
3676         * reload1.c (merge_assigned_reloads): Do not change any
3677         RELOAD_FOR_OUTPUT_ADDRESS reloads.
3678
3679 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
3680
3681         * Makefile.in (LIPO_FOR_TARGET): Define.
3682         (STRIP_FOR_TARGET): Define.
3683
3684         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
3685         before creating new ones.  Do symlinks before creating the actual
3686         targets.
3687
3688         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
3689         to work out which multilibs are actually being built.
3690
3691 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
3692
3693         * tree-vect-transform.c, config/ms1/ms1.md,
3694         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
3695         Follow spelling conventions.
3696         * doc/invoke.texi, doc/md.texi: Fix typos.
3697
3698 2005-09-30  Andrew Macleod  <amacleod@redat.com>
3699
3700         PR tree-optimization/21430
3701         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
3702         use operands, and set stmt pointer if need be.
3703         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
3704         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
3705         present.
3706
3707 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3708
3709         PR middle-end/24053
3710         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
3711
3712 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
3713
3714         * optabs.c (expand_binop): Initialize first_pass_p.
3715
3716 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
3717
3718         PR middle-end/24109
3719         * c-decl.c (c_write_global_declarations_1): If any
3720         wrapup_global_declaration_2 call returned true, restart the loop.
3721
3722 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
3723
3724         Fix PR tree-optimization/24117
3725         * tree-ssa-structalias.c (find_func_aliases): Strip nops
3726         before considering whether to use anyoffset.
3727
3728 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
3729
3730         Revert this patch:
3731
3732         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
3733
3734         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
3735         to order operands.
3736         (swap_commutative_operands_with_target): New.
3737
3738 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
3739
3740         PR c/21419
3741         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
3742         read-only.
3743
3744 2005-09-29  Steven Bosscher  <stevenb@suse.de>
3745
3746         PR tree-optimization/23911
3747         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
3748         and IMAGPART_EXPR too.
3749
3750 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
3751
3752         PR 17886
3753         * expmed.c (expand_shift): Move logic to reverse rotation
3754         direction when  rotating by constants ...
3755         * optabs.c (expand_binop): ... here.
3756         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
3757         (ix86_rotrdi3): New pattern.
3758         (rotldi3): Handle 32-bit mode.
3759         (ix86_rotldi3): New pattern.
3760
3761 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
3762
3763         PR target/24102
3764         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
3765         check for numbers that need no bit twiddle.
3766
3767 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
3768
3769         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
3770         multilib to be built.
3771
3772         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
3773         (stage1-start): Delete old libgcc and libunwind before moving
3774         anything into the stage directory.
3775         (stage2-start): Likewise.
3776         (stage3-start): Likewise.
3777         (stage4-start): Likewise.
3778         (stageprofile-start): Likewise.
3779         (stagefeedback-start): Likewise.
3780         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
3781         header in tm_file and CPU-specific t-darwin in tmake_file.
3782         (i[34567]86-*-darwin*): Don't change tm_file.
3783         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
3784         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
3785         shared library stub for target OS version.
3786         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
3787         (SHLIB_LINK): Don't make SHLIB_SOLINK.
3788         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
3789         (libgcc_s.%.dylib): New.
3790         (LIBGCC): Define.
3791         (install-darwin-libgcc-stubs): New.
3792         (INSTALL_LIBGCC): New append.
3793         * config/i386/darwin-libgcc.10.4.ver: New.
3794         * config/i386/darwin-libgcc.10.5.ver: New.
3795         * config/i386/t-darwin: New.
3796         * config/rs6000/darwin-libgcc.10.4.ver: New.
3797         * config/rs6000/darwin-libgcc.10.5.ver: New.
3798         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
3799         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
3800
3801 2005-09-28  Paul Brook  <paul@codesourcery.com>
3802
3803         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
3804         denormals.
3805
3806 2005-09-28  Richard Guenther  <rguenther@suse.de>
3807
3808         PR tree-optimization/23853
3809         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
3810         host_integerp to verify misalignment value.
3811
3812 2005-09-28  Richard Henderson  <rth@redhat.com>
3813
3814         * builtins.c (get_builtin_sync_mode): New.
3815         (expand_builtin_sync_operation): Pass in mode argument.
3816         (expand_builtin_compare_and_swap): Likewise.
3817         (expand_builtin_lock_test_and_set): Likewise.
3818         (expand_builtin_lock_release): Likewise.
3819         (expand_builtin): Update to match.
3820
3821 2005-09-28  Nick Clifton  <nickc@redhat.com>
3822
3823         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
3824         formatting.  Add check to PLUS case to ensure that the offset is
3825         within an acceptable range.
3826
3827         * config/v850/v850.md (casesi): Disable the generation of the
3828         switch pattern as it is not being handled properly at the moment.
3829
3830         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
3831         for when the high words are identical.
3832
3833 2005-09-27  Richard Henderson  <rth@redhat.com>
3834
3835         * pretty-print.c (pp_base_format): Fix typo for %>.
3836
3837 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
3838             Devang Patel  <dpatel@apple.com>
3839
3840         PR tree-optimization/23625
3841         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
3842         LABEL_EXPR, assertion check.
3843
3844 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
3845
3846         * optabs.c (no_conflict_move_test): Check if a result of a
3847         to-be-moved insn would be clobbered by an originally
3848         preceding insn.
3849
3850 2005-09-27  Jeff Law  <law@redhat.com>
3851
3852         * passes.c (init_optimization_passes): Replace copy propagation
3853         passes immediately after DOM with phi-only copy propagation
3854         pases.  Add phi-only copy propagation pass after first DOM pass.
3855         * tree-pass.h (pass_phi_only_copy_prop): Declare.
3856         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
3857         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
3858         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
3859         to init_copy_prop.  Callers updated.
3860         (do_phi_only_copy_prop): New function.
3861         (pass_phi_only_copy_prop): New pass descriptor.
3862
3863 2005-09-27  Nick Clifton  <nickc@redhat.com>
3864
3865         * libgcc2.c (__popcount_tab): Remove redundant prototype.
3866
3867 2005-09-26  Jason Merrill  <jason@redhat.com>
3868
3869         PR c++/13764
3870         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
3871
3872         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
3873
3874 2005-09-26  James E Wilson  <wilson@specifix.com>
3875
3876         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
3877         copyright.  Add gcc copyright plus libgcc exception.
3878         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
3879         copyright.
3880         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
3881
3882 2005-09-26  Jeff Law  <law@redhat.com>
3883
3884         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
3885         about when to iterate.
3886
3887 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
3888
3889         PR target/23847
3890         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
3891         for __complex__ double in -mcpu=G5 mode.
3892
3893 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
3894
3895         PR tree-optimization/23942
3896         * Makefile.in (SCEV_H): Depends on PARAMS_H.
3897         * tree-scalar-evolution.c: Include params.h.
3898         (t_bool): New enum.
3899         (follow_ssa_edge, follow_ssa_edge_in_rhs,
3900         follow_ssa_edge_in_condition_phi_branch,
3901         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
3902         Change return type to t_bool.  Use a parameter to limit the size of
3903         trees that are walked before stopping
3904         (analyze_evolution_in_loop): Initialize the limit to 0.
3905         (follow_ssa_edge): Give up by returning t_dont_know if the limit
3906         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3907
3908 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
3909
3910         PR middle-end/23831
3911         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
3912         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
3913
3914 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
3915
3916         * combine.c (make_extraction): Check for valid use of subreg.
3917
3918 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
3919
3920         PR target/24055
3921         * config/i386/i386.md ("*fistdi2_1"): New pattern.
3922         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
3923         ("fist<mode>2_with_temp"): Use only register operands.
3924
3925 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
3926
3927         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
3928         CALL_INSN_FUNCTION_USAGE.
3929
3930 2005-09-26  Richard Guenther  <rguenther@suse.de>
3931
3932         PR middle-end/15855
3933         * gcse.c: Include hashtab.h, define ldst entry hashtable.
3934         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
3935         (ldst_entry): Use the hashtable instead of list-walking.
3936         (find_rtx_in_ldst): Likewise.
3937         (free_ldst_entry): Free the hashtable.
3938         (compute_ld_motion_mems): Create the hashtable.
3939         (trim_ld_motion_mems): Remove entry from hashtable if
3940         removing it from list.
3941         (compute_store_table): Likewise^2.
3942         (store_motion): Free hashtable in case we did not see
3943         any stores.
3944
3945 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
3946
3947         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
3948         and arg1 if we are passing them to fold_build2.
3949
3950 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
3951
3952         PR 23828
3953         * config/i386/i386.c (ix86_function_regparm): Fix the test for
3954         a nested function.
3955
3956 2005-09-25  Richard Henderson  <rth@redhat.com>
3957
3958         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
3959         SYMBOL_REF_TLS_MODEL to be correct.
3960
3961 2005-09-24  Richard Henderson  <rth@redhat.com>
3962
3963         * ipa-type-escape.c (discover_unique_type): Remove dead code at
3964         end of function.  Reindent.
3965
3966 2005-09-24  Ian Lance Taylor  <ian@airs.com>
3967
3968         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
3969         NEGATE_EXPR/BIT_NOT_EXPR case.
3970
3971 2005-09-24  Richard Henderson  <rth@redhat.com>
3972
3973         * c-common.c (handle_mode_attribute): When not modifying in place,
3974         create subtypes for enumerations.
3975         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
3976         * gimplify.c (create_tmp_from_val): Likewise.
3977
3978 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
3979
3980         * config/i386/i386.md (*tls_global_dynamic_64,
3981         *tls_local_dynamic_base_64): Add missing mode to call.
3982         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
3983
3984 2005-09-24  Jan Hubicka  <jh@suse.cz>
3985
3986         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
3987         (cgraph_clone_node): Likewise.
3988         * cgraph.h (cgraph_clone_edge): Update prototype.
3989         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
3990         duplicated prototypes; add updating argument.
3991         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
3992         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
3993         updating profile.
3994         (cgraph_mark_inline_edge): Likewise.
3995         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
3996         (cgraph_flatten_node): Likewise.
3997         (cgraph_decide_recursive_inlining): Likewise.
3998         (cgraph_decide_inlining_of_small_function): Likewise.
3999         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4000
4001 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
4002             Pete Steinmetz <steinmtz@us.ibm.com>
4003
4004         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
4005         (rldic.): Set type to "compare".
4006         (rldicr.): Same.
4007         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
4008         mfjmpr for MFCTR/MFLR.
4009         (movdf_hardfloat64): Same.
4010         (movdf_softfloat64): Same.  Correct order of store and move types.
4011         (movti_string): Set type to store_ux/load_ux.
4012         (load_multiple): Set type to load_ux.
4013         (store_multiple): Set type to store_ux.
4014         (movmemsi): Set type to store_ux.
4015         (output_cbranch direct_return): Set type to jmpreg.
4016         (stmw): Set type to store_ux.
4017         (lmw): Set type to load_ux.
4018         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
4019         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
4020         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
4021         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
4022         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
4023         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
4024         (rios1-fpstore): Increase latency to 3.
4025         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
4026         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
4027
4028 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
4029             Andrew Pinski  <pinskia@physics.uc.edu>
4030
4031         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
4032         operand2 constraint to "b".
4033         (sync_<fetchop_name>di_internal): Same.
4034         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
4035         to "b".
4036         (sync_old_<fetchop_name>di_internal): Same.
4037         (sync_new_<fetchop_name>si_internal): Same.
4038         (sync_new_<fetchop_name>di_internal): Same.
4039
4040 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
4041
4042         PR middle-end/23991
4043         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
4044         case, define as macros.
4045
4046         PR rtl-optimization/23837
4047         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
4048         clobber / clobber match between dest and p->first.
4049
4050         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
4051         (no_conflict_move_test): Update comments.
4052
4053 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
4054
4055         * doc/install.texi: Update URL for Jacks.
4056         * doc/sourcebuild.texi: Likewise.
4057
4058 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
4059
4060         PR target/24007
4061         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
4062         registers when choosing register preferences.
4063         (movdf_hardfloat64): Same.
4064
4065 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
4066
4067         * expmed.c (expand_shift): Don't use the target of the rotate as
4068         target for the first expanded shift insn.
4069         * testsuite/gcc.dg/20050922-1.c: Testcase added.
4070
4071 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
4072
4073         PR tree-optimization/22438
4074         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
4075         preserved iv rhs rewriting specially.
4076
4077 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
4078
4079         * tree-data-ref.c (analyze_array_indexes): Only estimate when
4080         estimate_only  is true.
4081         * tree-flow.h (ref_contains_indirect_ref): New prototype.
4082         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
4083         tree-ssa-structalias.c
4084         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
4085         ref_contains_indirect_ref.
4086         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
4087
4088 2005-09-21  DJ Delorie  <dj@redhat.com>
4089
4090         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
4091         MASK_PTR_A0D0.
4092         (mn10300_return_in_memory): Support variable size types also.
4093         (mn10300_pass_by_reference): Likewise.
4094         (mn10300_function_value): New.
4095         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
4096         (FUNCTION_OUTGOING_VALUE): Likewise.
4097         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
4098         * doc/invoke.texi: Document it.
4099
4100 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
4101
4102         PR target/22585
4103         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
4104         force integer op1 into register for XFmode compares.
4105
4106 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
4107
4108         PR middle-end/23971
4109         * expmed.c (alg_code): Add alg_impossible.
4110         (alg_hash_entry): Add cost.
4111         (synth_mult): Record alg_impossible in the hash table if
4112         multiplication by a given integer is impossble within the
4113         limit.  Speed up using alg_impossible.
4114
4115 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
4116
4117         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
4118         argument.  Allow and set any offset if needs_anyoffset is passed
4119         in.
4120         (get_constraint_for): Add argument here too.
4121         Pass it down.
4122         (do_structure_copy): Pass NULL to get_constraint_for.
4123         (handle_ptr_arith): Ditto.
4124         (find_func_aliases): Ditto.
4125
4126 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
4127
4128         PR rtl-optimization/23898
4129         * output.h (get_attr_min_length): Declare.
4130         * final.c (get_attr_length_1): New function, broken out of:
4131         (get_attr_length).
4132         (get_attr_min_length): New function.
4133         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
4134         (duplicate_computed_gotos): Likewise.
4135         * genattr.c (insn_min_length): Generate declaration.
4136         * genattrtab.c (min_fn, min_attr_value): New functions.
4137         (make_length_attrs): Generate insn_min_length.
4138
4139 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
4140
4141         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
4142
4143 2005-09-20  Richard Henderson  <rth@redhat.com>
4144
4145         PR tree-optimization/24059
4146         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
4147         EXPAND_STACK_PARM.
4148
4149 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
4150
4151         * c.opt (fextended-identifiers): New.
4152         * c-opts.c (c_common_handle_option): Handle
4153         -fextended-identifiers.
4154         * doc/cpp.texi: Update documentation of extended identifiers.
4155         * doc/cppopts.texi (-fextended-identifiers): Document.
4156
4157 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
4158
4159         PR tree-optimization/23929
4160         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
4161         if expr is NULL.
4162
4163         PR tree-optimization/23818
4164         * tree-stdarg.c (execute_optimize_stdarg): Call
4165         calculate_dominance_info.
4166
4167 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
4168
4169         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
4170         (analyze_siv_subscript_cst_affine): Add weak SIV test.
4171         (compute_overlap_steps_for_affine_1_2): Use
4172         get_number_of_iters_for_loop.
4173         (analyze_subscript_affine_affine): Check whether difference is
4174         zero first.
4175         Use get_number_of_iters_for_loop.
4176         Check whether overlap occurs outside of bounds.
4177         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
4178
4179 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
4180
4181         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
4182         base register if possible.
4183
4184 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
4185
4186         PR tree-optimization/18463
4187         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
4188         converting it directly is not possible.
4189         (chrec_convert_aggressive): New function.
4190         * tree-chrec.h (chrec_convert_aggressive): Declare.
4191         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
4192         Fold chrec conversions aggressively if asked to.
4193         (instantiate_parameters): Modified because of changes in
4194         instantiate_parameters_1.
4195
4196 2005-09-19  Richard Henderson  <rth@redhat.com>
4197
4198         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
4199         (reduc_splus_v2df): New.
4200
4201 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
4202
4203         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
4204         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
4205
4206 2005-09-19  Richard Henderson  <rth@redhat.com>
4207
4208         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
4209         vcondu<SSEMODE12>.
4210
4211 2005-09-19  Richard Henderson  <rth@redhat.com>
4212
4213         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
4214         (ia64_expand_dot_prod_v8qi): New.
4215         * config/ia64/ia64-protos.h: Update.
4216         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
4217         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
4218         sdot_prodv8qi, sdot_prodv4hi): New.
4219         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
4220
4221 2005-09-19  Richard Henderson  <rth@redhat.com>
4222
4223         PR 23941
4224         * real.c (exact_real_truncate): Return false if the format cannot
4225         represent the number as a normal.
4226
4227         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
4228         for a memory source.
4229
4230 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
4231
4232         * tree-ssa-operands.c (swap_tree_operands): Export.
4233         * tree.h (swap_tree_operands): Declare.
4234         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
4235         Call swap_tree_operands.
4236
4237 2005-09-19  Richard Henderson  <rth@redhat.com>
4238
4239         * tree-flow.h (merge_alias_info): Declare.
4240         * tree-ssa-copy.c (merge_alias_info): Export.
4241         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
4242         (vect_create_data_ref_ptr): Use create_iv directly.
4243         (vectorizable_load): Use correct types for integer constants.
4244         (vect_generate_tmps_on_preheader): Likewise.
4245         (vect_gen_niters_for_prolog_loop): Likewise.
4246
4247 2005-09-19  Steven Bosscher  <stevenb@suse.de>
4248
4249         PR rtl-optimization/23943
4250         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
4251
4252 2005-09-18  Jan Hubicka  <jh@suse.cz>
4253
4254         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
4255
4256 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
4257
4258         * varasm.c (output_constant): Do not abort on conversions to union
4259         types between different sizes.
4260
4261 2005-09-18  Richard Guenther  <rguenther@suse.de>
4262
4263         PR middle-end/23944
4264         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
4265         fallback.
4266
4267 2005-09-18  Paul Brook  <paul@codesourcery.com>
4268
4269         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
4270
4271 2005-09-17  Richard Henderson  <rth@redhat.com>
4272
4273         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
4274         * tree-ssa-loop.c (pass_vect_dce): Remove.
4275         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
4276         of pass_vectorize.
4277
4278 2005-09-17  Richard Henderson  <rth@redhat.com>
4279
4280         * tree-pass.h (pass_vect_dce): Declare.
4281         * passes.c (init_optimization_passes): Add it.
4282         * tree-flow.h (tree_ssa_dce): Declare.
4283         * tree-ssa-dce.c (tree_ssa_dce): Export.
4284         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
4285         (gate_tree_vectorize): ... here.
4286         (pass_vect_dce): New.
4287
4288 2005-09-17  Jan Hubicka  <jh@suse.cz>
4289
4290         * except.c (struct eh_status): Turn region_array into vec.
4291         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
4292         convert_from_eh_region_ranges, find_exception_handler_labels,
4293         current_function_has_exception_handlers, assign_filter_values,
4294         build_post_landing_pads, dw2_build_landing_pads,
4295         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
4296         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
4297         foreach_reachable_handler, can_throw_internal_1,
4298         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
4299         region_array.
4300         (duplicate_eh_region_1): Update region_array.
4301         (duplicate_eh_regions): Resize region_array and avoid recomputing.
4302
4303 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
4304
4305         PR middle-end/22067
4306         * expmed.c (expand_mult): Substitute simple register for op0 when
4307         computing max_cost.
4308
4309 2005-09-17  Richard Henderson  <rth@redhat.com>
4310
4311         * expr.c (emit_move_via_integer): Add force argument, pass it on
4312         to emit_move_change_mode.  Update callers.
4313         (emit_move_complex): Pass true to new force argument.
4314         * function.c (expand_function_end): Move expand_eh_return call
4315         earlier.  Merge sub-word complex values into a pseudo before
4316         copying to the return hard register.
4317
4318 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
4319
4320         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
4321         between different sizes.
4322
4323 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
4324
4325         PR 23903
4326
4327         * passes.c (init_optimization_passes): Register dump files for
4328         IPA passes first.
4329
4330 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
4331
4332         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
4333         * config/s390/s390.c (s390_overlap_p): New function.
4334         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
4335         peephole2, "*xc" peephole2): Added overlap check to the peephole2
4336         condition.
4337
4338 2005-09-16  Richard Guenther  <rguenther@suse.de>
4339
4340         * ipa-pure-const.c (static_execute): Free auxiliar information.
4341         * ipa-type-escape.c (discover_unique_type): Free temporary key.
4342         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
4343
4344 2005-09-15  DJ Delorie  <dj@redhat.com>
4345
4346         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
4347
4348 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
4349
4350         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
4351         to order operands.
4352         (swap_commutative_operands_with_target): New.
4353
4354 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
4355
4356         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
4357         parameter.
4358         Update callers.
4359         (estimate_iters_using_array): New function.
4360         * tree-data-ref.h (estimate_iters_using_array): Prototype
4361         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4362         Use estimate_iters_using_array instead of analyze_array.
4363
4364 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
4365
4366         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
4367         as addressable.
4368
4369 2005-09-15  Michael Matz  <matz@suse.de>
4370
4371         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
4372
4373 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
4374
4375         PR tree-optimization/23835
4376         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
4377         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
4378
4379 2005-09-14  Richard Henderson  <rth@redhat.com>
4380
4381         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
4382         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
4383
4384 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
4385
4386         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
4387         in the ARRAY_TYPE case.
4388
4389 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
4390
4391         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
4392
4393 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
4394
4395         PR middle-end/22480
4396         * tree-vect-transform.c (vectorizable_operation): Return false for
4397         scalar shift operations and for vector shift operations with
4398         non-invariant shift arguments.  Use scalar tree operand op1 as
4399         a shift operand when vector shift insn pattern uses scalar shift
4400         operand.
4401         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
4402
4403 2005-09-14  Olivier Hainque  <hainque@adacore.com>
4404
4405         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
4406         value if it has side-effects.
4407
4408 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
4409
4410         PR target/22068
4411         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
4412
4413 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
4414
4415         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
4416         passed as NAME as if it were label at start of function code.
4417
4418 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
4419
4420         * config/sh/sh.md (*movv4sf_i): Add general register cases to
4421         the constraints.
4422
4423 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
4424
4425         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
4426         as early clobber.  Rewrite so the PIC register is not implicitly used.
4427
4428 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4429
4430         * tree.c (annotate_with_file_line): Compare line numbers before
4431         file names.
4432
4433 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
4434
4435         PR target/23816
4436         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
4437         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
4438
4439 2005-09-13  Ian Lance Taylor  <ian@airs.com>
4440
4441         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
4442         than a HOST_WIDEST_INT to gen_doloop_begin.
4443
4444 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
4445
4446         * tree-dfa.c (dump_variable): Guard against NULL annotations.
4447
4448 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
4449
4450         PR tree-optimize/23817
4451         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
4452
4453 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
4454
4455         PR target/23774
4456         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
4457         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
4458         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
4459         (restore_stack_nonlocal): Likewise.
4460         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
4461
4462 2005-09-12  Ian Lance Taylor  <ian@airs.com>
4463
4464         PR g++/7874
4465         * c.opt (ffriend-injection): New C++ option.
4466         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
4467         (C++ Dialect Options): Document -ffriend-injection.
4468
4469 2005-09-12  Josh Conner  <jconner@apple.com>
4470
4471         PR middle-end/23237
4472         * ipa-reference.c (static_execute): Don't mark variables in
4473         named sections TREE_READONLY.
4474
4475 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
4476
4477         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
4478         stack_tie.
4479
4480 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
4481
4482         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
4483         V_MUST_DEF instead of just the first_use_p.
4484         Don't mark the virtual variables for renaming on the statement which
4485         is being removed.
4486         (pass_dse): Remove TODO_update_ssa.
4487
4488 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
4489
4490         PR middle-end/23290
4491         * stor-layout.c (compute_record_mode): For records with a single
4492         field, actually check the field's mode size against the type size.
4493
4494         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
4495         registers for TARGET_SHMEDIA.
4496         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
4497         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
4498         of GENERAL_REGS and FP_REGS.
4499
4500 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
4501
4502         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
4503
4504 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
4505
4506         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
4507         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
4508         are omitted.  Exclude stack_tie insn too.
4509
4510 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
4511
4512         PR rtl-optimization/23098
4513         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
4514         0.0f is easy.
4515         * config/rs6000/rs6000.md (movdf splitter): Use
4516         const_double_operand predicate for TARGET_POWERPC64.
4517         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
4518         SYMBOL_REF method to ABI_V4.
4519
4520         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
4521         replace_equiv_address.
4522         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
4523         rs6000_sr_alias_set and MEM_NOTRAP.
4524         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
4525
4526 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
4527
4528         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
4529         handle CALL_EXPR again.
4530
4531 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
4532
4533         * arm/predicates.md (alignable_memory_operand): Delete.
4534
4535 2005-09-10  Richard Henderson  <rth@redhat.com>
4536
4537         PR debug/23806
4538         * dbxout.c (dbxout_expand_expr): New.
4539         (dbxout_symbol): Use it.
4540
4541 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
4542
4543         * arm.c (arm_gen_rotated_half_load): Delete.
4544         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
4545         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
4546         (thumb_set_return_address): Likewise.
4547         (thumb_load_double_from_address): Use adjust_address.
4548         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
4549         (extendhsisi2_mem, movhi_bytes): Use change_address.
4550         (movhi): Use widen_memory_access.
4551         (reload_out_df): Use replace_equiv_address.
4552         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
4553
4554 2005-09-09  Richard Henderson  <rth@redhat.com>
4555
4556         PR debug/20998
4557         * dbxout.c: Include expr.h.
4558         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
4559         (dbxout_symbol): Handle DECL_VALUE_EXPR.
4560         * Makefile.in (dbxout.o): Add EXPR_H.
4561
4562 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
4563
4564         PR tree-optimization/23509
4565         * tree-cfg.c (replace_uses_by): Use replace_exp.
4566         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
4567         pointers have name_mem_tag or type_mem_tag set.
4568
4569 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
4570
4571         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
4572         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
4573         of wrongly accessing operands.
4574
4575 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
4576
4577         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
4578         * tree-chrec.c: Include tree-scalar-evolution.h.
4579         (chrec_convert): Instantiate the base and step before calling
4580         scev_probably_wraps_p that would fail on parametric evolutions.
4581         Collect all the fails into a single section failed_to_convert,
4582         print a diagnostic, and return chrec_dont_know instead of calling
4583         fold_convert.
4584         * tree-scalar-evolution.c (loop_closed_phi_def): New.
4585         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
4586         phi nodes.
4587         (scev_const_prop): Don't replace the definition of a loop closed ssa
4588         phi node by itself, or by another loop closed ssa phi node.
4589         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
4590         that base and step are defined.
4591
4592 2005-09-09  Richard Guenther  <rguenther@suse.de>
4593
4594         PR c++/23624
4595         * fold-const.c (fold_ternary): Check truth_value_p before
4596         calling invert_truthvalue.
4597
4598 2005-09-09  Nick Clifton  <nickc@redhat.com>
4599
4600         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
4601         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
4602         dimension of these arrays.
4603         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
4604         these arrays.
4605         * longlong.h: Only provide a prototype for the __clz_tab[] array
4606         if this header has not been included from libgcc2.h.
4607         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
4608         defining own types.
4609         Provide prototypes for exported functions.
4610         Use the __clz_tab[] and __popcount_tab[] arrays provided by
4611         libgcc2.c.
4612
4613 2005-09-08  Josh Conner  <jconner@apple.com>
4614
4615         PR c++/21135
4616         PR c++/23180
4617         * expr.c (expand_expr_addr_expr_1): Don't invoke
4618         expand_simple_binop for EXPAND_INITIALIZER.
4619
4620 2005-09-08  Richard Henderson  <rth@redhat.com>
4621
4622         PR debug/23190
4623         * toplev.c (wrapup_global_declaration_1): Split out ...
4624         (wrapup_global_declaration_2): ... from ...
4625         (wrapup_global_declarations): ... here.  Return bool.
4626         (check_global_declaration_1): Split out ...
4627         (check_global_declarations): from here.
4628         (emit_debug_global_declarations): New.
4629         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
4630         check_global_declaration_1, emit_debug_global_declarations): Declare.
4631         * c-decl.c (c_write_global_declarations_1): Don't create a vector
4632         of decls.  Call wrapup_global_declaration_1,
4633         wrapup_global_declaration_2, check_global_declaration_1 directly.
4634         (c_write_global_declarations_2): New.
4635         (ext_block): New.
4636         (c_write_global_declarations): Call c_write_global_declarations_2.
4637         * langhooks.c (write_global_declarations): Call
4638         emit_debug_global_declarations.
4639
4640         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
4641         remove decls that have DECL_RTL_SET_P.
4642         * passes.c (rest_of_decl_compilation): Invoke
4643         cgraph_varpool_finalize_decl for all but functions.
4644
4645 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4646
4647         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
4648         the result of a conversion if the new min and max cannot be compared.
4649
4650 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
4651
4652         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
4653         (override_options): Setting s390_sr_alias_set removed.
4654         (save_fpr, save_gprs): Set alias set to vararg or frame.
4655         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
4656         s390_sr_alias_set with get_frame_alias_set ().
4657         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
4658         get_varargs_alias_set ().
4659
4660 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
4661
4662         PR objc/20574
4663         PR objc/19324
4664         * c-parser.c (c_parser_objc_method_definition): If the next
4665         token is not "{", error out and don't start the function.
4666
4667 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
4668
4669         * tree-vrp.c (extract_range_from_expr): Move the check for non
4670         nullness after the check for gimple invariant.
4671
4672 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4673
4674         * tree.c (host_integerp, tree_low_cst): Correct function comment.
4675
4676 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4677
4678         PR target/23747
4679         * config/m32r.md (movmemsi_internal): Canonicalize order of
4680         operands in PLUS component of template.
4681
4682 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
4683
4684         * reload1.c (fixup_eh_region_note): Remove assertion.
4685         (fixup_abnormal_edges): Reverted removal of call to
4686         find_many_sub_basic_blocks made on 2005-08-31.
4687
4688 2005-09-07  Richard Henderson  <rth@redhat.com>
4689
4690         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
4691         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
4692         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
4693         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
4694         rearrange for better packing.
4695         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
4696         (lookup_cfa_1): Remove inline marker.
4697         (cfa_equal_p): Split out of ...
4698         (def_cfa_1): ... here.  Use INVALID_REGNUM.
4699         (build_cfa_loc): Handle !cfa->indirect.
4700         (frame_pointer_cfa_offset): New.
4701         (dbx_reg_number): Assert register elimination performed; do
4702         leaf register remapping.
4703         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
4704         (eliminate_reg_to_offset): New.
4705         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
4706         for verifiably local stack frame addresses; re-base to CFA.
4707         (mem_loc_descriptor): Remove can_use_fbreg argument.
4708         (concat_loc_descriptor, loc_descriptor): Likewise.
4709         (containing_function_has_frame_base): Remove.
4710         (rtl_for_decl_location): Don't do register elimination or
4711         leaf register remapping here.
4712         (secname_for_decl): Split out from ..
4713         (add_location_or_const_value_attribute): ... here.
4714         (convert_cfa_to_loc_list): New.
4715         (compute_frame_pointer_to_cfa_displacement): New.
4716         (gen_subprogram_die): Use them.
4717         * tree.h (frame_base_decl): Remove.
4718         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
4719         (prologue_stack_adjust): Remove.
4720         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
4721         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
4722         (set_frame_base_location): Remove.
4723         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
4724         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
4725         (vt_add_function_parameters): Don't eliminate_regs.
4726         (vt_initialize): Don't create frame_base_decl.
4727
4728 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4729
4730         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
4731         version of GNU binutils for 4.x and later.
4732
4733 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
4734
4735         * ggc-page.c (ggc_push_context): Remove.
4736         (ggc_pop_context): Likewise.
4737         * ggc.h (ggc_push_context): Remove.
4738         (ggc_pop_context): Likewise.
4739
4740 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
4741
4742         PR target/8973
4743         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
4744         returning from an interrupt handler.
4745
4746 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
4747
4748         PR target/8972
4749         * config/arc/arc.c (output_shift): Add check for loop count when
4750         optimizing.
4751
4752 2005-09-06  Steven Bosscher  <stevenb@suse.de>
4753
4754         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
4755         form manually.
4756         (abs_replacement): Likewise.
4757         (pass_phiopt): Remove TODO_update_ssa.
4758
4759 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
4760
4761         PR c/23075
4762         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
4763         if "return with no value, in function returning non-void" warning
4764         has been issued.
4765         * tree-cfg.c (execute_warn_function_return): Don't look at
4766         RETURN_EXPRs with TREE_NO_WARNING set.
4767
4768         PR target/22362
4769         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
4770         for internal functions doesn't use registers used by global registers
4771         variables.  Use fewer register parameters if there are global register
4772         variables.
4773
4774 2005-09-06  Olivier Hainque  <hainque@adacore.com>
4775             Eric Botcazou  <ebotcazou@adacore.com>
4776
4777         PR middle-end/14997
4778         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
4779         when we would be extracting outside its bit span (bitpos+bitsize
4780         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
4781         Ada unchecked conversions.
4782
4783 2005-09-06  Steven Bosscher  <stevenb@suse.de>
4784
4785         * tree-ssa-pre.c (try_look_through_load): New function.
4786         (compute_avail): Use it to try to look through loads for some
4787         more useful expressions.
4788
4789 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
4790
4791         * simplify-rtx.c (simplify_binary_operation_1): Correct the
4792         condition for detecting cases like (a&a) and (a^a).
4793
4794 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
4795
4796         * common.opt: Add option ftree-vect-loop-version.
4797         * params.def: Add --param vect-max-version-checks.
4798         * doc/invoke.texi: Document ftree-vect-loop-version and
4799         --param vect-max-version-checks.
4800         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
4801         may_misalign_stmts and defines for accessors.
4802         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
4803         LOOP_VINFO_MAY_MISALIGN_STMTS.
4804         (destroy_loop_vec_info): VEC_free for
4805         LOOP_VINFO_MAY_MISALIGN_STMTS.
4806         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
4807         Update documentation.
4808         (vect_update_misalignment_for_peel): New.
4809         (vect_enhance_data_refs_alignment): Update to choose loop
4810         peeling or loop versioning if appropriate for the (potentially)
4811         unaligned data references in the loop.
4812         (vect_analyze_data_refs_alignment): Remove call to
4813         vect_enhance_data_refs_alignment so the checks can be done
4814         earlier.
4815         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
4816         and move up call to vect_analyze_data_refs_alignment.
4817         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
4818         (vect_transform_loop): Add call to loop_version.
4819
4820 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
4821
4822         PR rtl-optimization/23098
4823         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
4824         * simplify-rtx.c (constant_pool_reference_p): New function.
4825         * rtl.h (constant_pool_reference_p): New prototype.
4826         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
4827         constant_pool_reference_p in condition and
4828         avoid_constant_pool_reference in preparation statements.
4829
4830 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
4831
4832         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
4833         STRICT_LOW_PART SETs.
4834
4835 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
4836
4837         PR middle-end/21460
4838         * except.c (sjlj_emit_function_enter): Find the function begin
4839         note even when it's not in first basic block.
4840
4841 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
4842
4843         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
4844         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
4845         * aclocal.m4: Regenerate.
4846
4847 2005-09-05  DJ Delorie  <dj@redhat.com>
4848
4849         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
4850         of macro.
4851
4852 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
4853
4854         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
4855         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
4856         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
4857         Follow spelling conventions.
4858         * doc/invoke.texi: Follow spelling conventions.
4859
4860 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
4861
4862         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
4863         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
4864         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
4865
4866 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
4867
4868         PR target/23683
4869         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
4870         (output_stack_adjust): Use gen_tmp_stack_mem.
4871         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
4872         (sh_set_return_address, sh_allocate_initial_value): Likewise.
4873         (sh_get_pr_initial_val): Likewise.
4874         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
4875         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
4876         * sh.md (divsi_inv_m0): Use gen_const_mem.
4877         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
4878         (movdf_i4+1): Use gen_tmp_stack_mem.
4879         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
4880         (fpu_switch+2): Likewise.
4881         (movv4sf_i, movv16sf_i): Use adjust_address.
4882         (symGOT_load): Set MEM_NOTRAP_P bit.
4883
4884 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4885
4886         PR target/23721
4887         * pa.c (emit_move_sequence): Fix typo in last change.
4888
4889 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
4890
4891         PR rtl-optimization/23454
4892         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
4893         is true.
4894
4895 2005-09-03  Richard Henderson  <rth@redhat.com>
4896             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4897
4898         PR middle-end/23671
4899         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
4900         gen_rtx_MEM.
4901
4902 2005-09-02  Nicolas Pitre <nico@cam.org>
4903
4904         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
4905         to bit_count to 32 bits.
4906
4907 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
4908
4909         PR c++/23167
4910         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
4911         generating synthetic loads from volatile lvalues.
4912
4913 005-09-02  Nick Clifton  <nickc@redhat.com>
4914
4915         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
4916         __ctzhi2, __clzhi2): New functions.
4917
4918 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
4919
4920         PR middle-end/23547
4921         * tree-nested.c (struct var_map_elt): Mark with GTY.
4922         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
4923         var_map_elt.
4924         (lookup_field_for_decl): Allocate new element in GC memory.
4925         (lookup_tramp_for_decl): Likewise.
4926         (convert_nl_goto_reference): Likewise
4927         (create_nesting_tree): Allocate info in GC memory. Likewise for
4928         info->var_map.
4929         (free_nesting_tree): Free with ggc_free instead of free.
4930         (root): New static variable.
4931         (lower_nested_functions): Remove root as local variable.  And zero out
4932         root at the end of the function.
4933
4934 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
4935
4936         PR rtl-optimization/20365
4937         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
4938         to short.  New member ix.
4939         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
4940         (simplify_plus_minus): Initialize ix members before calling qsort.
4941
4942 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
4943
4944         PR tree-optimization/23626
4945         * tree-cfg.c (replace_uses_by): Clean up eh info.
4946
4947 2005-09-01  DJ Delorie  <dj@redhat.com>
4948
4949         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
4950         fprintf.
4951
4952 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
4953
4954         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
4955         (rs6000_split_multireg_move): Use replace_equiv_address instead of
4956         gen_rtx_MEM.
4957
4958 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4959
4960         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
4961         do not issue warning for a variable definition following
4962         a declaration.
4963
4964 2005-09-01  Richard Henderson  <rth@redhat.com>
4965
4966         PR 23668
4967         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
4968         conversion to CONST_VECTOR.
4969
4970 2005-09-01  Richard Henderson  <rth@redhat.com>
4971
4972         PR 23676
4973         * reload1.c (reload_as_needed): Check !CALL_P before calling
4974         fixup_eh_region_note.
4975         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
4976
4977 2005-09-01  DJ Delorie  <dj@redhat.com>
4978
4979         * varasm.c (output_constant): Let the target resolve
4980         conversions of addresses to non-default pointer sizes.
4981
4982 2005-09-01  Nicolas Pitre <nico@cam.org>
4983
4984         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
4985         to alow matching ARM pre-indexed addressing mode.
4986         (arm_override_options): Remove now irrelevant comment.
4987
4988 2005-09-01  Phil Edwards  <phil@codesourcery.com>
4989
4990         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
4991         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
4992         * config/i386/vxworks.h:  Likewise.
4993         * config/i386/t-vxworksae:  New file, for VxWorks AE.
4994         * config/i386/vxworksae.h:  Likewise.
4995
4996 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
4997
4998         PR tree-optimization/23410
4999         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
5000         sequence is not wrapping during the first step.
5001
5002 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
5003
5004         PR debug/7241
5005         * dwarf2out.c (base_type_die): Compare char_type_node with
5006         TYPE_MAIN_VARIANT (type), not type.
5007
5008 2005-09-01  Richard Guenther  <rguenther@suse.de>
5009
5010         PR tree-optimization/15366
5011         * common.opt: Add -finline-functions-called-once.
5012         Put -fearly-inlining in alphabetically ordered place.
5013         * doc/invoke.texi: Document new option.
5014         * ipa-inline.c (cgraph_decide_inlining): Honour
5015         flag_inline_functions_called_once.
5016
5017 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
5018
5019         PR rtl-optimization/23478
5020         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
5021         (alloc_qty): Initialize it.
5022         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
5023         (combine_regs): Combine also n_throwing_calls_crossed fields.
5024         (find_free_reg): Don't attempt to caller-save pseudos crossing
5025         calls that might throw.
5026         * global.c (struct allocno): Add throwing_calls_crossed field.
5027         (global_alloc): Revert 2005-08-22 change.  Initialize
5028         throwing_calls_crossed.
5029         (find_reg): Don't attempt to caller-save pseudos crossing calls that
5030         might throw.
5031
5032 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
5033
5034         PR target/23649
5035         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
5036         (mask64_operand): Reinstate code prior to 2005-06-11 change.
5037         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
5038         (and64_2_operand): Tweak to use predicate.
5039         (and_operand): Adjust for mask_operand changes.
5040         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
5041         (print_operand): Likewise.
5042         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
5043         (mask64_1or2_operand): Delete.
5044         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
5045         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
5046         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
5047         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
5048         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
5049         (rotldi3_internal4): Likewise.
5050         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
5051         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
5052         (ashldi3_internal7): Likewise.
5053         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
5054         (ashldi3_internal, ashldi3_internal9 split): Likewise.
5055         (anddi3 split): Don't match mask64_operand.
5056         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
5057         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
5058         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
5059         't' splitter predicate.
5060         (movdi_internal64 + 2): Revert 2005-06-11 change.
5061
5062 2005-08-31  DJ Delorie  <dj@redhat.com>
5063
5064         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
5065         (m32c_asm_integer): Add support for 32 bit pointers.
5066
5067 2005-08-31  Richard Henderson  <rth@redhat.com>
5068
5069         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
5070         component-like references for setting MEM_NOTRAP_P.
5071
5072         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
5073         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
5074
5075 2005-08-31  Richard Henderson  <rth@redhat.com>
5076
5077         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
5078         into a pseudo before applying gen_lowpart.
5079
5080 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
5081
5082         * doc/install.texi (Specific): Update cctools version required
5083         for full functionality.
5084         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
5085         linkers as -macosx_version_min.
5086
5087 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
5088
5089         PR target/21255
5090         * sh.c (print_operand, %R and %S): Add handling of floating point
5091         registers, memory, constants and invalid operands.
5092
5093 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
5094
5095         * ipa-pure-const.c: Change dump name.
5096
5097 2005-08-31 Uros Bizjak <uros@kss-loka.si>
5098
5099         PR target/23570
5100         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
5101         to "reg_or_0_operand".
5102         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
5103
5104 2005-08-31  Dale Johannesen  <dalej@apple.com>
5105
5106         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
5107         loops that count down.
5108
5109 2005-08-31  Richard Henderson  <rth@redhat.com>
5110
5111         PR rtl-opt/23601
5112         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
5113         (fixup_eh_region_note): New.
5114         (reload_as_needed): Call it.
5115         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
5116         don't call find_many_sub_basic_blocks; call verify_flow_info.
5117         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
5118         (keep_stack_depressed): Likewise.
5119         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
5120
5121 2005-08-31  Richard Henderson  <rth@redhat.com>
5122
5123         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
5124         fp return matching.
5125
5126 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
5127
5128         * expr.c (expand_expr_real_1): Compare size of address
5129         mode to target's address mode size in deciding expansion of
5130         the constant address.
5131
5132 2005-08-31  Richard Guenther  <rguenther@suse.de>
5133
5134         PR middle-end/23477
5135         * expr.c (all_zeros_p): New function.
5136         (expand_expr_real_1): Handle the case of an all-zero
5137         non-addressable constructor separately.
5138
5139 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
5140
5141         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
5142         arguments, adjust all callers.
5143         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
5144
5145 2005-08-30  Richard Henderson  <rth@redhat.com>
5146
5147         PR target/23630
5148         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
5149         whenever the mode sizes match.
5150
5151 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
5152
5153         * calls.c (load_register_parameters): Fix comment typo.
5154         * expr.c (emit_push_insn): Comment formatting.
5155
5156 2005-08-30  Ian Lance Taylor  <ian@airs.com>
5157
5158         * config/i386/x-cygwin (host-cygwin): Change dependency from
5159         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
5160
5161 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
5162
5163         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
5164         parts of 'vals'.
5165
5166 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
5167
5168         PR middle-end/23408
5169         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
5170         call to ggc_collect.
5171
5172 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
5173
5174         PR bootstrap/21268
5175         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
5176         beginning.  Remove $(INCLUDES) from all the rules, if following
5177         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
5178
5179 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
5180
5181         PR middle-end/23484
5182         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
5183         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
5184         not constant, but maxlen is, don't set len to maxlen, rather
5185         set maxlen to len if len is a constant.
5186
5187 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
5188
5189         PR tree-optimization/23475
5190         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
5191         and counts.
5192
5193 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
5194
5195         Fix PR middle-end/22455
5196
5197         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
5198         Checksum only the parts of the tree that exist for the tree code.
5199
5200 2005-08-28  Dale Johannesen  <dalej@apple.com>
5201
5202         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
5203
5204 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
5205
5206         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
5207
5208 2005-08-28  Richard Henderson  <rth@redhat.com>
5209
5210         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
5211         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
5212         of char_type_node.
5213
5214 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
5215
5216         PR ada/23593
5217         * builtins.c (get_memory_rtx): Don't strip nops
5218         in between COMPONENT_REFs.
5219
5220 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
5221
5222         PR middle-end/23463
5223         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
5224         types.
5225         (gimplify_modify_expr): Check for zero sized types and gimplify the
5226         rhs and lhs as statements.
5227
5228 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
5229
5230         PR libgcj/23508
5231         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
5232         state for return address column of signal frames.
5233
5234 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
5235
5236         PR target/23539
5237         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
5238         bytes >= 2 not bytes == 2.
5239         (expand_block_move): Same.
5240
5241 2005-08-27  Richard Guenther  <rguenther@suse.de>
5242
5243         PR target/23575
5244         * config/i386/sse.md (sse2_movsd): Add missing closing
5245         braces.
5246
5247 2005-08-27  Paul Brook  <paul@codesourcery.com>
5248
5249         * genrecog.c (enum decision_type): Add DT_num_insns.
5250         (struct decision_test): Add u.num_insns.
5251         (add_to_sequence): Add DT_num_insns test.
5252         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
5253         (write_cond, debug_decision_2): Ditto.
5254         (change_state): Assume peep2_next_insn never fails.
5255         Remove "afterward" argument.
5256         (write afterward, write_tree): Update to match.
5257         * recog.c (peep2_current_count): New variable.
5258         (peep2_next_insn): Check it.
5259         (peephole2_optimize): Set peep2_current_count.
5260         * recog.h (peep2_current_count): Declare.
5261
5262 2005-08-26  Josh Conner  <jconner@apple.com>
5263
5264         PR middle-end/23584
5265         * ipa-pure-const.c (check_tree): Check for volatile-ness
5266         when considering a dereference.
5267
5268 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
5269
5270         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
5271
5272 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
5273
5274         PR rtl-optimization/23561
5275         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
5276         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
5277         at most LEN bytes long memory fits into the field.
5278         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
5279         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
5280         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
5281
5282 2005-08-26  Richard Henderson  <rth@redhat.com>
5283
5284         PR rtl-opt/23560
5285         * loop.c (biased_biv_may_wrap_p): New.
5286         (maybe_eliminate_biv_1): Use it to suppress non-equality
5287         comparison transformations.  Delete disabled code.
5288
5289 2005-08-26  Ian Lance Taylor  <ian@airs.com>
5290
5291         * combine.c (make_extraction): Avoid reference outside object.
5292
5293 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
5294
5295         * stor-layout.c (finalize_type_size): Restore behaviour for
5296         non-aggregate types to the status quo ante of the patch for
5297         pr 23467.  Document why it matters.
5298
5299 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
5300
5301         PR c/23506
5302         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
5303         array by one element, initialize the BT_LAST element with NULL.
5304
5305 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
5306
5307         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
5308         optimizing for size.
5309         (plus_eqsi): Same.
5310         (compare_plus_eqsi): Same.
5311         (plus_eqsi_compare): Same.
5312         (neg_eq0<mode>): Same.
5313         (neg_eq<mode>): Same.
5314
5315         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
5316         PROCESSOR_POWER4.
5317
5318 2005-08-26  Nick Clifton  <nickc@redhat.com>
5319
5320         * config/v850/v850.c (ep_memory_operand): Return FALSE if
5321         TARGET_EP is not defined.
5322         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
5323         TARGET_EP is enabled.
5324         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
5325         * config/v850/v850.md (save_all_interrupt): Only use the EP
5326         register if TARGET_EP is defined.
5327         (restore_all_interrupt): Likewise.
5328         * config/v850/lib1funcs.asm: Update functions so that the EP
5329         register is only used if __EP__ is defined.
5330
5331 2005-08-26  David Ung  <davidu@mips.com>
5332
5333         * config/mips/mips.c (mips_expand_prologue): Handle case when
5334         generating for MIPS16 and the outgoing argument area is more than
5335         SMALL_OPERAND. Use the frame pointer as temporary to generate the
5336         add instruction.
5337
5338 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
5339
5340         * config/crx/crx.md: Make doloop_end pattern usage controllable
5341         via mloop-nesting=<max-nesting> command line switch. Make sure
5342         the combiner cannot use doloop_end_<mode> in an illegal way.
5343         * config/crx/crx.c: Use regs up to r6 for argument passing.
5344         Refine crx_address_cost (non cst4 displacements are expensive).
5345         * config/crx/crx.opt: Add switch for mloop-nesting=.
5346
5347 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
5348
5349         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
5350         (UNSPEC_MVST): New constant.
5351
5352 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
5353
5354         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
5355         Reject operands containing eliminable registers.
5356         * testsuite/gcc.dg/20050825-1.c: New testcase.
5357
5358 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
5359             Jan Hubicka  <jh@suse.cz>
5360
5361         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
5362
5363 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
5364
5365         PR tree-optimization/23546
5366         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
5367         and REAL_CST nodes.
5368
5369 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
5370
5371         * params.def (PARAM_MIN_SPEC_PROB): New.
5372         * sched-rgn.c (MIN_PROBABILITY): Delete.
5373         (compute_trg_info): Convert to PARAM_VALUE.
5374         * doc/invoke.texi (param): Document min-spec-prob.
5375
5376 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
5377
5378         * config/darwin.h: define __PIC__
5379         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
5380         TARGET_OS_CPP_BUILTINS macro.
5381
5382 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
5383
5384         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
5385         yesterday.
5386
5387 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
5388
5389         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
5390         to duplicate_block.
5391         * cfghooks.c (duplicate_block): Added position where to place
5392         new block as argument.
5393         * cfghooks.h (duplicate_block): Declaration changed.
5394         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
5395         duplicate_block.
5396         * cfglayout.h (copy_bbs): Declaration changed.
5397         * cfgloop.h (loop_version): Declaration changed.
5398         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
5399         position to copy_bbs.
5400         (loop_version): Pass position to duplicate_loop_to_header_edge.
5401         Add place_after argument and position new blocks according to
5402         it.
5403         * modulo-sched.c (sms_schedule): Pass place_after argument
5404         to loop_version.
5405         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
5406         * tree-cfg.c (split_edge_bb_loc): New function.
5407         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
5408         to determine position of new blocks.
5409         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
5410         to loop_version.
5411         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
5412         argument to duplicate_block.
5413         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
5414         Pass position to copy_bbs.
5415
5416 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
5417
5418         * fold-const.c (ptr_difference_const): Use
5419         cst_and_fits_in_hwi instead of host_integerp.
5420
5421 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
5422
5423         * config/darwin.c (gen_pic_offset): New.
5424         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
5425         Use it.
5426
5427 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
5428
5429         PR tree-optimization/23486
5430         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
5431
5432 2005-08-23  Phil Edwards  <phil@codesourcery.com>
5433
5434         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
5435         remove use_collect2.
5436         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
5437
5438         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
5439         configuration files to override the default value.
5440
5441         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
5442         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
5443         * config/vx-common.h:  New file, split out from...
5444         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
5445         * config/vxworksae.h:  New file, for VxWorks AE.
5446         * config/vxworks.opt:  New file.
5447         * config/vxlib.c:  Update for VxWorks 6.
5448
5449         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
5450         other MULTILIB_* variables appropriately.
5451         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
5452         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
5453         * config/rs6000/vxworks.h:  Update for VxWorks 6.
5454         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
5455
5456 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
5457
5458         PR target/20799
5459         * config/darwin.c (machopic_select_section): Remove the hack to
5460         mark "::operator new" and "::operator delete" for coalescing
5461         even though they are not weak.
5462
5463 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
5464
5465         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
5466         * configure: Regenerate.
5467
5468 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
5469
5470         PR middle-end/23517
5471         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
5472         between vectors.
5473         * convert.c (convert_to_integer, convert_to_vector): Likewise.
5474         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
5475         Likewise.
5476
5477 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
5478
5479         * config/rs6000/predicates.md (equality_operator): New.
5480         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
5481         comparison with a large constant.
5482
5483 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
5484
5485         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
5486
5487 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
5488
5489         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
5490         registers is even, and we have a hardware double precision fp,
5491         align the buffer.
5492         (sh_gimplify_va_arg_expr): For floating point arguments, consider
5493         size of current argument when checking if argument was passed in
5494         registers.
5495
5496         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
5497
5498         PR middle-end/23467
5499         * stor-layout.c (finalize_type_size): Dont override
5500         existing alignment with a smaller alignment from the mode.
5501
5502 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
5503
5504         * lambda-code.c (lambda_vector_lexico_pos): Moved...
5505         * lambda.h (lambda_vector_lexico_pos): ... here.
5506         * tree-data-ref.c (build_classic_dist_vector): Return false when
5507         the distance vector is lexicographically negative.
5508
5509 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
5510
5511         PR tree-optimization/23511
5512         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
5513         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
5514
5515 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
5516
5517         PR tree-optimization/22043
5518         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
5519         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
5520         If ALLOW_FLEXARR, handle types ending with flexible array member.
5521         Pass false as second argument to recursive count_type_elements calls.
5522         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
5523         argument to count_type_elements call.
5524         * tree-sra.c (decide_block_copy): Likewise.
5525         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
5526         for a constant-sized object, set cleared as well.  Pass true as
5527         second argument to count_type_elements call.
5528
5529 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
5530
5531         PR target/21571
5532         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
5533         from legitimate_small_data_p, and make global.  Update use.
5534         Remove forward declaration.
5535         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
5536         Declare.
5537         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
5538
5539 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
5540
5541         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
5542         of scratch intermediates.
5543         (eq<mode>_compare): Same.
5544         (neg_eq0<mode>): New.
5545         (neg_eq<mode>): Convert to define_insn_and_split.
5546
5547 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
5548
5549         PR target/23070
5550         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
5551         stdarg functions, set/clear the fp marker even when no variable
5552         args are passed.
5553         * config/rs6000/sysv4.opt (mprototype): Describe.
5554
5555 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
5556
5557         PR rtl-optimization/23478
5558         * regs.h (reg_info): Add throw_calls_crossed.
5559         (REG_N_THROWING_CALLS_CROSSED): Define.
5560         * flow.c (allocate_reg_life_data): Initialize
5561         REG_N_THROWING_CALLS_CROSSED.
5562         (propagate_one_insn, attempt_auto_inc): Update
5563         REG_N_THROWING_CALLS_CROSSED.
5564         * global.c (global_alloc): Don't allocate pseudos across
5565         calls that may throw.
5566
5567 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
5568
5569         PR c/18715
5570         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
5571         value is inbetween the range if we did not find an exact match.
5572
5573 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
5574
5575         * doc/invoke.texi (Option Summary): Add ms1 options.
5576         * doc/extend.texi: Document interrupt handler attribute for ms1.
5577         * doc/md.texi: Document ms1 constraints.
5578         * config.gcc: Add ms1-*-elf.
5579         * config/ms1/ms1.h: New.
5580         * config/ms1/ms1.c: New.
5581         * config/ms1/ms1.md: New.
5582         * config/ms1/ms1-protos.h: New.
5583         * config/ms1/ABI.txt: New.
5584         * config/ms1/crti.asm: New.
5585         * config/ms1/crtn.asm: New.
5586         * config/ms1/lib2extra-funcs.c: New.
5587         * config/ms1/t-ms1: New.
5588         * config/ms1/ms1.opt: New.
5589
5590 2005-08-22 Ira Rosen <irar@il.ibm.com>
5591
5592         * config/rs6000/altivec.md (xorv4sf3): New.
5593         (negv4sf2, neg<mode>2): Likewise.
5594
5595 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
5596
5597         PR target/23485
5598         * config/ia64/ia64.md (divsi3): Check divide by zero.
5599         (udivsi3): Likewise.
5600         (divdi3): Likewise.
5601         (udivdi3): Likewise.
5602
5603 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
5604
5605         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
5606         up to elem_bitsize bits, not max_bitsize.
5607
5608 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
5609
5610         PR tree-optimization/23433
5611         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
5612         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
5613
5614 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
5615
5616         PR tree-optimization/23434
5617         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
5618         the iteration bound is not an INTEGER_CST.
5619
5620 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
5621
5622         * tree-vect-transform.c (get_initial_def_for_reduction): Set
5623         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
5624         NULL if need_epilog_adjust is false.
5625         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
5626         Case 3 always peels first itration, not just for PLUS case, and no need
5627         to use scalar_initial_def here. Create an epilog adjustment only if
5628         scalar_initial_def is not NULL.
5629
5630         (vectorizable_reduction): Remove assert.
5631
5632 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5633
5634         PR target/23485
5635         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
5636         (__moddi3): Likewise.
5637         (__udivdi3): Likewise.
5638         (__umoddi3): Likewise.
5639         (__divsi3): Likewise.
5640         (__modsi3): Likewise.
5641         (__udivsi3): Likewise.
5642         (__umodsi3): Likewise.
5643
5644 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
5645
5646         * tree-pass.h (TDF_GRAPH): Define.
5647         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
5648         * passes.c (finish_optimization_passes): Only call
5649         finish_graph_dump_file if TDF_GRAPH is set.
5650         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
5651         NULL.  Set TDF_GRAPH bit.
5652         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
5653
5654 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
5655
5656         * arm.h (arm_stack_offsets): Add locals_base field.
5657         * arm.c (arm_get_frame_offsets): Compute it.
5658         (thumb_compute_initial_elimination offset): Make the Thumb frame
5659         pointer point to the base of the local variables.
5660         (thumb_expand_prologue): Update accordingly.
5661         (thumb_expand_epilogue): Likewise.
5662
5663         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
5664         mode of clobbered scratch to DImode.  Handle a case that's known to
5665         need this.
5666
5667 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
5668
5669         * config/rs6000/rs6000.md (gt0<mode>): Delete.
5670         (gt0<mode>_compare): Delete.
5671         (neg_gt0<mode>): Delete.
5672
5673 2005-08-19  Eric Christopher  <echristo@apple.com>
5674
5675         * optabs.h: Change CTI_ to COI_.
5676         * optabs.c: Ditto.
5677
5678 2005-08-19  James E Wilson  <wilson@specifix.com>
5679
5680         * builtins.c (expand_builtin_return_addr): Set
5681         current_function_accesses_prior_frames when count != 0.  Use
5682         frame_pointer_rtx when count == 0.
5683         * function.h (struct function): Add accesses_prior_frames field.
5684         (current_function_accesses_prior_frames): Define.
5685         * reload1.c (init_elim_table): Check
5686         current_function_accesses_prior_frames.
5687         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
5688
5689 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
5690
5691         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
5692         indicator.  Return true if the flowgraph changed during
5693         cleanup.
5694
5695 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
5696
5697         PR 23476
5698         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
5699         conditional expression before testing its value.
5700
5701 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
5702
5703         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
5704
5705 2005-08-19  Devang Patel  <dpatel@apple.com>
5706
5707         PR tree-optimization/23048
5708         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
5709         third parameter. Check whether latch is dominated by exit
5710         block or not.
5711         (if_convertible_loop_p): Supply exit block itself to
5712         if_convertible_bb_p.
5713
5714 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
5715
5716         PR target/23473
5717         * arm.md (arm_load_pic_register): Change argument to the mask of
5718         saved registers.  Call thumb_find_work_register if we need a
5719         scratch register on Thumb.
5720         (arm_expand_prologue): Pass empty register set to
5721         arm_load_pic_register.
5722         (thumb_expand_prologue): Pass live_regs_mask directly to
5723         arm_load_pic_register.
5724         * arm-protos.h (arm_load_pic_register): Update prototype.
5725
5726 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
5727
5728         * sh.c (find_sole_member): New function.
5729         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
5730         if the record's alignment is larger than the size of its only member.
5731
5732 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
5733
5734         PR target/23436
5735         * arm.c (thumb_legitimize_reload_address): New function.
5736         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
5737         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
5738
5739 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
5740
5741         * config/crx/crx.c: Implement crx_decompose_address. Reject
5742         symbolic displacements since CRX register relative adressing
5743         mode can't handle unsigned 32-bit values as displacements.
5744         * config/crx/crx.h: Simplify definitions, remove redundant
5745         parenthesis and obsolete macros.
5746         * config/crx/crx.opt: Add new switch for debugging addresses.
5747         * config/crx/crx-protos.h: Add new declarations for above.
5748
5749 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
5750
5751         PR middle-end/20624
5752         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
5753         looking past it.
5754
5755 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5756
5757         * collect2.c (dup2): Delete.
5758         * configure.ac: Don't check for dup2.
5759
5760         * config.in, configure: Regenerate.
5761
5762 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
5763
5764         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
5765         record with the type of its only member.
5766
5767 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
5768
5769         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
5770         define_insn_and_split.
5771         (plus_ltu<mode>_compare): Same.
5772         (gtu<mode>_compare): Same.
5773         (plus_gtu<mode>_compare): Same.
5774
5775 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
5776
5777         PR tree-optimization/22228
5778         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
5779         todo_flags_start.
5780         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
5781         are recorded in vect_vnames_to_rename for renaming.
5782         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
5783         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
5784         in vect_vnames_to_rename.
5785         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
5786         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
5787
5788 2005-08-18  Jan Hubicka  <jh@suse.cz>
5789
5790         PR c++/22034
5791         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
5792         info only for local statics, not for member variables.
5793
5794 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5795
5796         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
5797
5798 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5799
5800         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
5801
5802 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
5803
5804         PR middle-end/16045
5805         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
5806
5807 2005-08-17  James E Wilson  <wilson@specifix.com>
5808
5809         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
5810         array size check.
5811
5812 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
5813
5814         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
5815         (leu<mode>_compare): Same.
5816         (plus_leu<mode>): Same.
5817         (neg_leu<mode>): Same.
5818         (and_neg_leu<mode): Same.
5819         (ltu<mode>_compare): Same.
5820         (plus_ltu<mode>): Same.
5821         (geu<mode>): Same.
5822         (geu<mode>_compare): Same.
5823         (plus_geu<mode>): Same.
5824         (neg_geu<mode>): Same.
5825         (and_neg_geu<mode>): Same.
5826         (plus_gt<mode>): Same.
5827         (gtu<mode>_compare): Same.
5828         (plus_gtu<mode>): Same.
5829
5830 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
5831
5832         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
5833         Move call_table_data to end.  Delete spurious .text.
5834         (callt_save_all_interrupt): Fix comment typo.
5835
5836 2005-08-17  James E Wilson  <wilson@specifix.com>
5837             Kevin Winchester  <winchester@amirix.com>
5838
5839         PR target/21684
5840         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
5841
5842 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
5843
5844         PR target/23268
5845         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
5846         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
5847
5848 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
5849
5850         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
5851         record with the type of its only member if the modes don't match.
5852
5853         * varasm.c (decode_reg_name): Skip empty additional register names.
5854
5855 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
5856
5857         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
5858         lsm_tmp_name_length): New.
5859         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
5860         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
5861
5862 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5863             Andreas Krebbel  <krebbel1@de.ibm.com>
5864
5865         * config.gcc: Added z9-109 switch.
5866         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
5867         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
5868         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
5869         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
5870         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
5871         for "z9_109" cpu attribute.
5872         * config/s390/s390.c (z9_109_cost): New processor cost structure.
5873         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
5874         (s390_handle_arch_option): Added z9-109 switch.
5875         (override_options): Set respective cost function for z9-109.
5876         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
5877         (legitimate_reload_constant_p): Accept extended immediates.
5878         (print_operand): Three new output modifiers added: k, m and o.
5879         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
5880         (s390_output_mi_thunk): Use extended immediate when possible.
5881         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
5882         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
5883         (CONSTRAINT_LEN): Added length of O constraint.
5884         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
5885         * config/s390/s390.md ("cpu"): New value z9_109 added.
5886         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
5887         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
5888         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
5889         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
5890         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
5891         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
5892         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
5893         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
5894         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
5895         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
5896         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
5897         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
5898         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
5899         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
5900         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
5901         immediates.
5902         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
5903         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
5904         insns for TARGET_EXTIMM.
5905
5906 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5907
5908         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
5909
5910 2005-08-17  Nick Clifton  <nickc@redhat.com>
5911
5912         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
5913         Call default_encode_section_info.
5914
5915 2005-08-17  Steven Bosscher  <stevenb@suse.de>
5916
5917         PR tree-optimization/21574
5918         * tree-ssa-ccp.c (likely_value): If the right hand side is a
5919         constant, return CONSTANT.
5920         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
5921         (ccp_fold, visit_assignment): Likewise.
5922         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
5923
5924 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
5925
5926         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
5927         fold_buildN instead of buildN then fold_initializer or fold.
5928         (build_unary_op): Likewise.
5929         (build_binary_op): Likewise.
5930         * fold-const.c (fold_initializer): Remove.
5931         (fold_build1_initializer): New function.
5932         (fold_build2_initializer): New function.
5933         (fold_build3_initializer): New function.
5934         * tree.h (fold_initializer): Remove.
5935         (fold_build1_initializer): New function.
5936         (fold_build2_initializer): New function.
5937         (fold_build3_initializer): New function.
5938
5939 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
5940
5941         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
5942         (try_move_mult_to_index): Call fold_build2 instead of build2.
5943         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
5944         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
5945         fold_binary_to_constant.
5946         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
5947         fold (build.
5948         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
5949         check if A == gcd (A, B).  Remove TYPE argument.
5950         (analyze_offset) Use fold_build2 instead of fold (build.
5951         (create_data_ref): Likewise.
5952         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
5953         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
5954         then fold.
5955
5956 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
5957
5958         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
5959         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
5960
5961 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
5962
5963         PR tree-opt/23402
5964         * gimplify.c (zero_sized_type): New function.
5965         (gimplify_modify_expr_rhs): If we have a zero sized type,
5966         replace the statement with an empty statement.
5967
5968 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
5969
5970         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
5971         fxsave.
5972
5973 2005-08-16  Ian Lance Taylor  <ian@airs.com>
5974
5975         * doc/tm.texi (Label Output): Correct typo.
5976
5977 2005-08-16  Steven Bosscher  <stevenb@suse.de>
5978
5979         PR target/23376
5980         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
5981         force_operand will work later on using have_insn_for.
5982
5983 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5984
5985         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
5986
5987 2005-08-16  Ian Lance Taylor  <ian@airs.com>
5988
5989         PR c++/23337
5990         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
5991         vector type, don't try to construct it element by element.  Add an
5992         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
5993
5994 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5995
5996         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
5997
5998 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
5999
6000         * doc/invoke.texi (Precompiled Headers): Document some more options
6001         which are known to be safe.
6002
6003 2005-08-16  James E Wilson  <wilson@specifix.com>
6004
6005         PR tree-optimization/21105
6006         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6007         TREE_OVERFLOW check.
6008
6009 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
6010
6011         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
6012         (neg_ltu<mode>): Same.
6013         (gtu<mode>): Same.
6014         (neg_gtu<mode>): Same.
6015
6016 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6017
6018         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
6019         (fold_builtin_isdigit): Use fold_buildN.
6020         (build_function_call_expr): Likewise.
6021         * c-typeck.c (c_finish_loop): Likewise.
6022
6023 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
6024             Richard Shann <rshann@superh.com>
6025
6026         PR middle-end/20396:
6027         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
6028
6029 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
6030
6031         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
6032
6033 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
6034
6035         PR target/23355
6036         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
6037         arm_compure_save_reg0_reg12_mask to determine when the PIC register
6038         must be saved.
6039
6040 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6041
6042         PR middle-end/23369
6043         * fold-const.c (build_range_check): Disable optimization for function
6044         pointer expressions on targets that require function pointer
6045         canonicalization.
6046
6047 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
6048
6049         * simplify-rtx.c (simplify_const_relational_operation): When
6050         extracting arguments of a COMPARE, recompute the mode as well.
6051
6052 2005-08-15  Ian Lance Taylor  <ian@airs.com>
6053
6054         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
6055
6056 2005-08-15  DJ Delorie  <dj@redhat.com>
6057
6058         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
6059         the stack.
6060         (movsi_splittable): Allow, but split, moves to the stack.
6061         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
6062         stack.
6063
6064 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6065
6066         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
6067         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
6068         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
6069
6070         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
6071         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
6072         Delete HOST_PTR_PRINTF.
6073
6074         * configure, config.in: Regenerate.
6075
6076 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
6077
6078         * config/rs6000/rs6000.md (QHSI): New mode macro.
6079         (wd): Extend mode attr for QImode and HImode
6080         (dbits): New mode attr.
6081         (zero_extend<mode>di2): Convert to mode macro.
6082
6083 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
6084
6085         PR target/21841
6086         * doc/invoke.texi (-mgnu-ld): Update description.
6087         (-mhp-ld): Ditto.
6088
6089 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
6090
6091         PR 23391
6092         * Makefile.in (tree-chrec.o): Depends on real.h.
6093         * tree-chrec.c: Include real.h.
6094         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
6095         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
6096         * tree-scalar-evolution.c (add_to_evolution_1,
6097         interpret_rhs_modify_expr): Ditto.
6098
6099 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
6100
6101         PR 23386
6102         * tree-data-ref.c (estimate_niter_from_size_of_data): When
6103         step is negative compute the estimation from init downwards to zero.
6104
6105 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
6106
6107         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
6108
6109 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
6110
6111         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
6112         constraint.
6113         (legitimate_reload_constant_p): Fix handling of lliXX operands.
6114         Accept double-word constants that can be split.
6115         * config/s390/s390.md ("movti"): Use 'P' constraint.
6116         ("*movdi_31", "*movdf_31"): Likewise.
6117
6118 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
6119
6120         Fix PR tree-optimization/22615
6121
6122         * tree-ssa-structalias.c (solution_set_add): Handle
6123         first_vi_for_offset returning NULL.
6124         (do_da_constraint): Ditto.
6125         (do_sd_constraint): Ditto.
6126         (do_ds_constraint): Ditto
6127         (find_func_aliases): Ditto.
6128         (build_constraint_graph): RHS is allowed be ANYTHING.
6129         (first_vi_for_offset): Return NULL if we couldn't find anything at
6130         the offset.
6131
6132 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
6133
6134         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
6135         over memory as first operand.
6136
6137 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
6138
6139         PR target/23360
6140         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
6141         available for setting it.
6142
6143 2005-08-14  Ira Rosen  <irar@il.ibm.com>
6144
6145         PR tree-optimization/23320
6146         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
6147         data-refs' types instead of base object nullness. Add check for
6148         pointer type data-refs before first location comparison. Remove
6149         assert.
6150
6151 2005-08-14  Andreas Schwab  <schwab@suse.de>
6152
6153         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
6154
6155 2005-08-13  James E Wilson  <wilson@specifix.com>
6156
6157         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
6158         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
6159         -fstack-protector-all, --param ssp-buffer-size): Document.
6160         (-Wvariadic-macros): Alphabetize.
6161         (-fsched-stalled-insns-dep): Add missing 'f'.
6162
6163         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
6164         macros.
6165
6166 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
6167
6168         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
6169         or indirect address operand.
6170         (EXTRA_ADDRESS_CONSTRAINT): New.
6171         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
6172
6173 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
6174
6175         PR tree-optimization/22236
6176         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
6177         successors and predecessors.
6178         * tree-chrec.c (chrec_convert): Before converting, check that
6179         sequences don't wrap.
6180         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
6181         (analyze_array): Extern.
6182         (find_data_references_in_loop): Remove call to
6183         compute_estimated_nb_iterations.
6184         * tree-data-ref.h (analyze_array): Declared.
6185         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
6186         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
6187         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
6188         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
6189         condition.
6190         * tree-ssa-loop-ivcanon.c: Fix documentation.
6191         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
6192         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
6193         (infer_loop_bounds_from_undefined): New.
6194         (estimate_numbers_of_iterations_loop): Use
6195         infer_loop_bounds_from_undefined.
6196         (used_in_pointer_arithmetic_p): New.
6197         (scev_probably_wraps_p): Pass an extra parameter.  Call
6198         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
6199         (convert_step): Fix documentation.
6200         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
6201         Use initial_condition_in_loop_num and evolution_part_in_loop_num
6202         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
6203         scev_probably_wraps_p.
6204
6205 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
6206
6207         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
6208         (s390_register_info): Ignore clobbered_regs information for fixed
6209         registers, and only fixed registers.
6210         (s390_init_frame_layout): Remove redundant call.
6211
6212 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
6213
6214         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
6215         description of -Wold-style-casts.
6216
6217 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6218             Jakub Jelinek  <jakub@redhat.com>
6219
6220         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
6221         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
6222         * config/s390/s390.c (print_operand): New output modifier 'G' added.
6223         (get_thread_pointer): Renamed to s390_get_thread_pointer.
6224         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
6225         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
6226         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
6227         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
6228         ("stack_protect_set", "stack_protect_test"): New expanders.
6229         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
6230         "stack_protect_testdi"): New insn definitions.
6231
6232 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6233
6234         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
6235
6236 2005-08-12  Paul Brook  <paul@codesourcery.com>
6237
6238         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
6239
6240 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6241
6242         * config/s390/predicates.md (setmem_operand): New predicate.
6243         (shift_count_operand): Accept ANDs with special constants as
6244         operand.
6245         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
6246         with special constants.
6247         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
6248         shift_count_operand with setmem_operand.
6249
6250 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6251
6252         * config/s390/s390.c (s390_extract_part, s390_single_part):
6253         Type cast added.
6254         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
6255         (s390_output_mi_thunk): Don't use lg on 31 bit.
6256         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
6257         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
6258
6259 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6260
6261         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
6262         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
6263         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
6264         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
6265         with one of the new macros.
6266
6267 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6268
6269         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
6270         Don't set save_return_addr_p.
6271         (s390_register_info): Make clobbered_regs not depending on
6272         save_return_addr_p.
6273
6274 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
6275
6276         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
6277         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
6278
6279 2005-08-11  James E. Wilson  <wilson@specifix.com>
6280
6281         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
6282
6283 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
6284
6285         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
6286         locations gathered by var-tracking in single entry loc_list
6287         over loc_descriptor_from_tree.
6288
6289         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
6290         pass it down to loc_descriptor.
6291         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
6292         (containing_function_has_frame_base): Move earlier in the file.
6293         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
6294         instead of always assuming fbreg can't be used.
6295
6296 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
6297
6298         * config/rs6000/altivec.md: Change constraint "m" to "Z".
6299         * config/rs6000/predicates.md (indexed_or_indirect_operand):
6300         Accept address wrapped in AND for Altivec.
6301         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
6302         Strip AND wrapping offset address for Altivec.
6303
6304 2005-08-11  Richard Henderson  <rth@redhat.com>
6305
6306         PR middle-end/23312
6307         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
6308         before using TYPE_IS_SIZETYPE.
6309
6310 2005-08-11  Richard Henderson  <rth@redhat.com>
6311
6312         PR target/22225
6313         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
6314         insn types not present on ev4.
6315         (alphaev5_insn_pipe): Similarly.
6316
6317 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
6318
6319         PR target/23250
6320         * arm.c (arm_override_options): If the user has selected callee-super-
6321         interworking, then enable normal interworking.
6322
6323 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6324
6325         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
6326         redefinition.
6327
6328 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
6329
6330         * doc/rtl.texi: Fix two typos.
6331
6332 2005-08-11  Richard Guenther  <rguenther@suse.de>
6333
6334         PR target/23289
6335         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
6336         cases where we call to/from functions returning void.
6337
6338 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
6339
6340         PR c++/23225
6341         * tree.c (build_pointer_type_for_mode): Robustify.
6342
6343 2005-08-10  James E Wilson  <wilson@specifix.com>
6344
6345         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
6346         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
6347
6348         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
6349         "cum->".
6350
6351 2005-08-10  Eric Christopher  <echristo@apple.com>
6352
6353         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
6354         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
6355         V2DFmode.
6356
6357 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
6358
6359         PR target/21887
6360         * config/darwin.c (machopic_indirect_data_reference): Use a new register
6361         for the high part when generating dynamic-no-pic code.
6362
6363 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
6364
6365         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
6366         (x86_64-*-linux*): Likewise.
6367
6368         * config/i386/crtfastmath.c: New file.
6369         * config/i386/t-crtfm: Likewise.
6370
6371         * config/i386/linux.h (ENDFILE_SPEC): New.
6372         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
6373
6374         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
6375         crtfastmath.o.
6376
6377 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
6378
6379         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
6380         (vec_shl, vec_shr): Document new operations.
6381         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
6382
6383 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
6384
6385         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
6386         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
6387         change predicate to indexed_or_indirect_address.
6388
6389 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
6390
6391         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
6392         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
6393         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
6394         and __aeabi_uwrite8.
6395         * config/arm/unaligned-funcs.c: New file.
6396         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
6397
6398 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
6399
6400         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
6401         Add dump.
6402         * cfglayout.c (pass_insn_locators_initialize): Add dump.
6403         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
6404         Add dump.
6405         * except.c (pass_convert_to_eh_region_ranges): Add dump.
6406         * final.c (pass_shorten_branches): Add dump.
6407         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
6408         (pass_life): Rename dump.
6409         (rest_of_handle_flow2): Remove initial verify_flow_info.
6410         * function.c (pass_instantiate_virtual_regs): Add dump.
6411         * integrate.c (pass_initial_value_sets): Add dump.
6412         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
6413         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
6414         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
6415         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
6416         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
6417         gate_rtl_unrool_and_peel_loops): New.
6418         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
6419         rtl_doloop): Do not look at flags.
6420         * mode-switching.c (pass_mode_switching): Add dump.
6421         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
6422         pass_split_before_regstack): Add dump.
6423         * regmove.c (pass_stack_adjustments): Add dump.
6424         * tree-optimize.c (pass_fixup_cfg): Add dump.
6425
6426 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6427
6428         PR 23309
6429         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
6430         deciding which instruction sequence to use.
6431
6432 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
6433
6434         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
6435         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
6436
6437 2005-08-09  Richard Guenther  <rguenther@suse.de>
6438
6439         * c-common.c (builtin_function_2): Remove.
6440         (def_builtin_1): New function.
6441         (c_common_nodes_and_builtins): Use def_builtin_1 to
6442         build builtin functions.
6443
6444 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
6445
6446         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
6447         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
6448         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
6449         Visual DSP.
6450
6451 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
6452
6453         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
6454         fold_binary instead of fold_build2 since we don't care about the
6455         resulting tree.
6456         (loop_niter_by_eval): Likewise.
6457         (compare_trees): Likewise.
6458         (proved_non_wrapping_p): Likewise.
6459
6460 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
6461
6462         PR c/23161
6463         PR c/23165
6464         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
6465         if the if is really empty.
6466
6467 2005-08-09  Steven Bosscher  <stevenb@suse.de>
6468
6469         PR tree-optimization/23234
6470         * tree-ssa-math-opts.c (place_reciprocal): New enum.
6471         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
6472         argument of the new enum.
6473         (execute_cse_reciprocals): Add reciprocals for function arguments
6474         on the unique successor edge of the entry block.  Update other calls
6475         to execute_cse_reciprocals_1.
6476
6477 2005-08-08  Richard Henderson  <rth@redhat.com>
6478
6479         PR 22439
6480         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
6481
6482 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
6483
6484         * expr.c (write_complex_part): Return after handling MEM.
6485
6486 2005-08-08  Josh Conner  <jconner@apple.com>
6487
6488         PR rtl-optimization/23241
6489         * combine.c (simplify_comparison): Fix error in determining
6490         whether to lift a subreg from comparison.
6491
6492 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
6493
6494         PR target/18506
6495         * config/rs6000/altivec.md (vec_init<mode>): New.
6496         (vec_set<mode>): New.
6497         (vec_extract<mode>): New.
6498         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
6499         (rs6000_expand_vector_set): New.
6500         (rs6000_expand_vector_extract): New.
6501         (rs6000_legitimate_offset_address_p): Offset addresses are valid
6502         for Altivec modes before reload.
6503         (altivec_expand_vec_init_builtin): New.
6504         (get_element_number): New.
6505         (altivec_expand_vec_set_builtin): New.
6506         (altivec_expand_vec_ext_builtin): New.
6507         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
6508         builtins.
6509         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
6510         builtins.
6511         * config/rs6000/rs6000.h (rs6000_builtins): Add
6512         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
6513         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
6514         * config/rs6000/rs6000-protos.h: Declare new functions.
6515
6516 2005-08-08  Jan Hubicka  <jh@suse.cz>
6517
6518         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
6519         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
6520         * i386.md (movdi*): Use pic_32bit_operand.
6521         * predicates.md (pic_32bit_operand): New.
6522
6523 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
6524
6525         PR c++/21166
6526         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
6527
6528 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
6529
6530         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
6531         (test_for_singularity): Use fold_build2.
6532
6533 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6534
6535         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
6536
6537 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
6538
6539         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
6540         (COMMON_ASM_OP) Define.
6541         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
6542         (ix86_encode_section_info): Likewise.
6543         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
6544         SUBTARGET_ENCODE_SECTION_INFO.
6545
6546 2005-08-06  Richard Henderson  <rth@redhat.com>
6547
6548         PR 21894
6549         * tree-nested.c (convert_local_reference): Save and restore val_only
6550         around component_ref and friends.  Clear walk_subtrees by default.
6551
6552 2005-08-06  Peter O'Gorman  <peter@pogma.com>
6553
6554         PR 21366
6555         * gcc.c (process_command): Check the argument to -b has a dash.
6556         * doc/invoke.texi: Update -b and -V docs.
6557
6558 2005-08-06  James E Wilson  <wilson@specifix.com>
6559
6560         * config/mips/cross64.h, config/mips/t-cross64: Delete.
6561
6562 2005-08-06  Michael Matz  <matz@suse.de>
6563
6564         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
6565         member only if only one insn is associated with the value.
6566
6567 2005-08-06  Nick Clifton  <nickc@redhat.com>
6568
6569         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
6570         New define.
6571         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
6572         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
6573         Check symbol flags instead of symbol name mangling.
6574         (xstormy16_asm_output_aligned_common): Likewise.  Also
6575         simplify code since the bss100_section cass is the only case
6576         where the below100 code will be triggered.
6577         (xstormy16_encode_section_info): Encode below100 attribute
6578         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
6579         the name.
6580         (xstormy16_strip_name_encoding): Delete - this function is no
6581         longer needed.
6582         (TARGET_STRIP_NAME_ENCODING): Undefine.
6583         * config/stormy16/stormy16-protos.h: Delete prototype for
6584         xstormy16_strip_name_encoding.
6585
6586 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
6587
6588         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
6589         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
6590         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
6591         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
6592         config/alpha/predicates.md, config/arc/arc.h,
6593         config/arm/arm.h, config/arm/ieee754-df.S,
6594         config/arm/ieee754-sf.S, config/bfin/bfin.c,
6595         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
6596         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
6597         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
6598         config/m68hc11/m68hc11.h, config/mips/mips.c,
6599         config/mips/mips.h, config/mips/openbsd.h,
6600         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
6601         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
6602         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
6603         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
6604         config/sparc/linux.h, config/sparc/linux64.h,
6605         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
6606         doc/extend.texi, doc/gcov.texi, doc/install.texi,
6607         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
6608         typos.  Follow spelling conventions.
6609
6610 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
6611
6612         PR c/23113
6613         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
6614         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
6615         specially.  Check for side effects only for COND_EXPR.
6616         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
6617         return with TREE_NO_WARNING.
6618
6619 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
6620
6621         PR rtl-optimization/23233
6622         * loop.c (combine_movables): Require the modes to be the same.
6623         (move_movables): Remove handling of cases where the replacement
6624         had a different mode to the original.
6625
6626 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
6627
6628         PR tree-optimization/23128
6629         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
6630         subtraction wrap, and set TREE_OVERFLOW if they do.
6631
6632 2005-08-05  Richard Henderson  <rth@redhat.com>
6633
6634         PR 21728
6635         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
6636         FORCED_LABEL labels.
6637
6638 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
6639
6640         PR middle-end/23135
6641         * reload.c (find_reloads_subreg_address): Pass down TYPE
6642         unchanged.  Change all callers except find_reloads_toplev.
6643
6644 2005-08-05  Michael Matz  <matz@suse.de>
6645
6646         * genattrtab.c (current_alternative_string): Remove.
6647         (SIMPLIFY_ALTERNATIVE): Ditto.
6648         (attr_alt_bit_p): Ditto.
6649         (alternative_name): Make const char *.
6650         (evaluate_eq_attr): Remove use of above things.
6651         (simplify_test_exp): Ditto.
6652         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
6653         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
6654
6655 2005-08-04  James E Wilson  <wilson@specifix.com>
6656
6657         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
6658         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
6659         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
6660         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
6661         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
6662
6663 2005-08-04  Richard Henderson  <rth@redhat.com>
6664
6665         PR 21529
6666         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
6667         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
6668         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
6669         if we'd have to instantiate too many members.
6670
6671 2005-08-04  Richard Henderson  <rth@redhat.com>
6672
6673         PR 21291
6674         * tree-outof-ssa.c (coalesce_asm_operands): New.
6675         (coalesce_ssa_name): Use it.  Split out ...
6676         (coalesce_phi_operands, coalesce_result_decls): ... these.
6677
6678 2005-08-04  Paul Brook  <paul@codesourcery.com>
6679
6680         * read-rtl.c (read_quoted_string): Break if EOF.
6681
6682 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
6683
6684         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
6685         (fold_build2): Likewise.
6686         (fold_build3): Likewise.
6687         (fold_build1_stat): New function prototype.
6688         (fold_build2_stat): Likewise.
6689         (fold_build3_stat): Likewise.
6690         * fold-const.c (fold_build1): Rename to ..
6691         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
6692         through to build1_stat.
6693         (fold_build2): Rename to ..
6694         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
6695         through to build2_stat.
6696         (fold_build3): Rename to ..
6697         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
6698         through to build3_stat.
6699
6700 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
6701             Ian Lance Taylor  <ian@airs.com>
6702
6703         * function.c (assign_stack_local_1): Do not correct stack slot
6704         address if allocation size is smaller than mode size.
6705
6706 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
6707
6708         PR 22037
6709         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
6710         (tree_merge_blocks): Propagate anything allowed by
6711         may_propagate_copy.
6712         Clarify documentation.
6713         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
6714         SSA form, schedule an update if necessary.
6715
6716 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
6717
6718         * doc/install.texi (Binaries): Remove broken link to
6719         Sinix/Reliant Unix binaries.
6720
6721 2005-08-03  Richard Henderson  <rth@redhat.com>
6722
6723         PR 23221
6724         * function.c (stack_protect_epilogue): Export.
6725         * tree.h (stack_protect_epilogue): Declare.
6726         * calls.c (expand_call): Call it.
6727
6728 2005-08-03  Eric Christopher  <echristo@apple.com>
6729
6730         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
6731         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
6732         spec.
6733
6734 2005-08-04  Jan Hubicka  <jh@suse.cz>
6735
6736         * profile.c (branch_prob): Split edges with goto locus on them
6737         to get proper line counts.
6738         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
6739
6740 2005-08-03  Paul Brook  <paul@codesourcery.com>
6741
6742         * function.c (assign_parms): Round current_function_args_size
6743         to PARM_BOUNDARY, not STACK_BOUNDARY.
6744
6745 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
6746
6747         * config/i386/i386.c (x86_elf_aligned_common)
6748         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
6749
6750 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
6751
6752         PR tree-optimization/23157
6753         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
6754         before emitting them.
6755
6756 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6757
6758         PR tree-optimization/19899
6759         * Makefile.in (tree-scalar-evolution.o): Add real.h.
6760         * tree-scalar-evolution.c: Include real.h.
6761         (add_to_evolution): Build constant -1 of correct type.
6762
6763 2005-08-03  Jan Hubicka  <jh@suse.cz>
6764
6765         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
6766         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
6767         profile updating for complette unrolling.
6768         * loop-unroll.c (peel_loop_completely): Use it.
6769         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
6770         (tree_unroll_loops_completely): Disable code growing unrolling of cold
6771         loops.
6772
6773 2005-08-03  Paul Brook  <paul@codesourcery.com>
6774
6775         * combine.c (can_change_dest_mode): New function.
6776         (try_combine, simplify_set): Use it.
6777
6778 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
6779
6780         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
6781         TFmode to BLKmode.
6782
6783 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
6784
6785         * doc/install.texi (Specific): Adjust link to openavr.org.
6786         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
6787         (Binaries): Adjust HP-UX Porting Center link.
6788         (Binaries): Adjust Free Software Foundation ordering link.
6789
6790 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
6791
6792         * convert.c (convert_to_integer): Use fold_build1 instead of
6793         build1 when converting an integer to an integer.
6794
6795 2005-08-02  Richard Henderson  <rth@redhat.com>
6796
6797         * combine.c (combine_instructions): Don't use reg_equal/equiv
6798         results if the mode doesn't match.
6799
6800 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
6801
6802         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
6803         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
6804
6805 2005-08-02  Richard Henderson  <rth@redhat.com>
6806
6807         PR 23196
6808         * explow.c (memory_address): Remove special-case for
6809         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
6810
6811 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
6812
6813         PR 23164
6814         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
6815         number of calls to cleanup_tree_cfg_1.
6816
6817 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
6818
6819         * doc/invoke.texi: document file extensions .F90 and .F95
6820
6821 2005-08-02  Richard Guenther  <rguenther@suse.de>
6822
6823         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
6824         positive if its first argument is positive.
6825
6826 2005-08-02  Richard Guenther  <rguenther@suse.de>
6827
6828         PR tree-optimization/23177
6829         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
6830         on TMR_TAG.
6831
6832 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
6833
6834         PR tree-optimization/23129
6835         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
6836         varying for divisions with anti-ranges.
6837
6838 2005-08-02  Jan Hubicka  <jh@suse.cz>
6839
6840         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
6841         * tree-ssa-threadupdate.c (thread_block): Add it here.
6842
6843 2005-08-01  James E Wilson  <wilson@specifix.com>
6844
6845         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
6846         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
6847         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
6848         New.
6849         * config/mips/predicates.md (const_call_insn_operand): Add check for
6850         SYMBOL_REF_LONG_CALL_P.
6851         * doc/extend.texi (long_call): Document the new attribute.
6852
6853 2005-08-01  Ian Lance Taylor  <ian@airs.com>
6854             Richard Henderson  <rth@redhat.com>
6855
6856         * Makefile.in (RTL_BASE_H): Add real.h.
6857         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
6858         instead of memcpy.
6859         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
6860         directly.
6861         * rtl.c (rtl_check_failed_code_mode): New.
6862         * rtl.h (struct rtx_def): Add u.rv.
6863         (XCMWINT, XCNMPRV): New.
6864         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
6865         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
6866
6867 2005-08-01  Richard Henderson  <rth@redhat.com>
6868
6869         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
6870         with auto-inc codes.
6871
6872         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
6873
6874 2005-08-01  Jan Hubicka  <jh@suse.cz>
6875
6876         * i386-protos.h (asm_preferred_eh_data_format): Declare.
6877         * i386.c: Include dwarf2.h
6878         (asm_preferred_eh_data_format): New.
6879         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
6880
6881 2005-08-01  Ian Lance Taylor  <ian@airs.com>
6882
6883         * config/host-linux.c (linux_gt_pch_get_address): Add new name
6884         randomize_va_space for virtual address randomization control.
6885
6886 2005-08-01  Steven Bosscher  <stevenb@suse.de>
6887
6888         * common.opt (flag_ipa_cp): Put in right place to maintain
6889         alphabetic sort.
6890
6891 2005-08-01  Jan Hubicka  <jh@suse.cz>
6892
6893         * profile.c (compute_value_histograms): Fix thinko.
6894         * value-prof.c: Include toplev.h
6895         (check_counter): New function.
6896         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
6897         tree_mod_subtract_transform): Add sanity check.
6898
6899 2005-08-01  Richard Guenther  <rguenther@suse.de>
6900
6901         PR tree-optimization/23133
6902         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
6903         current functions parameter decls to find defs to cse
6904         reciprocals of.
6905
6906 2005-08-01  Richard Guenther  <rguenther@suse.de>
6907
6908         PR tree-optimization/23109
6909         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
6910         If trapping math is in effect, use post-dominator information
6911         to check if we'd in any case reach a trapping point before
6912         doing the reciprocal insertion.
6913         (execute_cse_reciprocals): Compute post-dominators, if necessary.
6914         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
6915         expressions are invariant only if trapping math is not in effect.
6916
6917 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
6918
6919         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
6920         cgraph_function_versioning): New declarations.
6921         * cgraphunit.c: Add include to ipa-prop.h.
6922         (update_call_expr, cgraph_copy_node_for_versioning,
6923         cgraph_function_versioning): New functions.
6924         * integrate.c (copy_decl_for_inlining): Remove.
6925         * ipa-prop.h (ipa_replace_map): New struct.
6926         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
6927         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
6928         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
6929         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
6930         ipcp_iterate_stage, ipcp_method_scale_print,
6931         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
6932         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
6933         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
6934         ipcp_update_bb_counts, ipcp_update_profiling,
6935         ipcp_update_edges_counts): New functions.
6936         (ipcp_method_cval_init): Remove restriction regarding local methods.
6937         (ipcp_init_stage): Add ipcp_method_compute_scale.
6938         (ipcp_insert_stage): Add versioning.
6939         (ipcp_structures_print): Add ipcp_method_scale_print.
6940         (ipcp_driver): Dump profiling info.
6941         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
6942         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
6943         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
6944         (struct inline_data): Add versioning_p, ipa_info, new fields.
6945         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
6946         declare_return_variable): Replace calls to copy_decl_for_inlining with
6947         copy_decl_for_dup.
6948         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
6949         versioning support.
6950         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
6951         Add argument VERSIONING.
6952         (copy_arguments_for_versioning, copy_static_chain,
6953         function_versionable_p, tree_versionable_function_p,
6954         tree_function_versioning, replace_ref_tree): New functions.
6955         * tree-inline.h: Include varray.h.
6956         (tree_versionable_function_p,  tree_function_versioning,
6957         tree copy_decl_for_dup): New declarations.
6958
6959 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
6960
6961         * ipa-cp.c: New file. Contains IPCP specific functionality.
6962         * ipa-prop.h: New file. Contains structures/definitions that can be
6963         used by several interprocedural data flow optimizations (and also IPCP).
6964         * ipa-prop.c: New file.
6965         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
6966         * common.opt: Add ipa-cp flag.
6967         * timevar.def: Add IPCP optimization.
6968         * tree-optimize.c (init_tree_optimization_passes): Schedule
6969         pass_ipa_cp.
6970         * tree-pass.h (pass_ipa_cp): Declare.
6971
6972 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
6973
6974         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
6975         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
6976         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
6977         config/i386/i386.c, config/mips/mips.h,
6978         config/rs6000/rs6000.h, config/sh/sh.c,
6979         config/stormy16/stormy16.c: Fix comment typos.
6980
6981 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
6982
6983         PR c/22311
6984         * c-typeck.c (build_binary_op): Use common_type wrapper on
6985         shortened types.
6986         (common_type): Update comment.
6987
6988 2005-07-31  Steven Bosscher  <stevenb@suse.de>
6989
6990         PR target/23095
6991         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
6992         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
6993         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
6994
6995 2005-07-31  Jan Hubicka  <jh@suse.cz>
6996
6997         * pretty-print.h (pp_widest_integer): New macro.
6998         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
6999         counts.
7000
7001 2005-07-31  Jan Hubicka  <jh@suse.cz>
7002
7003         * output.h (enum section_category): Export from varasm.c
7004         (categorize_decl_for_section): Likewise.
7005         * varasm.c (enum section_category): Kill.
7006         (categorize_decl_for_section): Make global.
7007         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
7008         Declare.
7009         * i386.c (ix86_section_threshold): New static variable.
7010         (ix86_in_large_data_p, ix86_encode_section_info,
7011         x86_64_elf_unique_section,
7012         x86_64_elf_select_section): New functions.
7013         (TARGET_ENCODE_SECTION_INFO): Define
7014         (override_options): Enable medium model for PIC.
7015         (ix86_expand_prologue): Expand gen_set_got_rex64.
7016         (legitimate_constant_p): Handle new UNSPECs.
7017         (legitimate_pic_address_disp_p): Likewise.
7018         (legitimize_pic_address): Lower MEDIUM model addressing.
7019         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
7020         (enum cmodel): Add MEDIUM_PIC.
7021         (SYMBOL_REF_FAR_ADDR_P): New macro.
7022         (SYMBOL_FLAG_FAR_ADDR): New flag.
7023         * i386.md (movdi): Support medium model.
7024         (set_got_rex64): New pattern.
7025         * i386.opt (mlarge-data-threshold): New flag.
7026         * predicates.md (zext_operand/sext_operand): Deal with medium model.
7027         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
7028         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
7029         TARGET_ASM_UNIQUE_SECTION): New.
7030
7031         * invoke.texi (-mlarge_data_threshold): Document
7032
7033 2005-07-31  Jan Hubicka  <jh@suse.cz>
7034
7035         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
7036         (coalesce_vars): Likewise.
7037         * tree-ssa-live.c (coalesce_cost): New.
7038         (build_tree_conflict_graph): Use coalesce_cost.
7039         * tree-ssa-live.h (coalesce_cost): Declare.
7040
7041 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
7042
7043         * arm.md (all peepholes for post-increment operations): Delete.
7044         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
7045         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
7046         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
7047         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
7048         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
7049
7050 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
7051
7052         * fold-const.c (tree_expr_nonnegative_p): Always return true for
7053         non-integral types.
7054
7055 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
7056
7057         PR target/22582
7058         * doc/invoke.texi: Document -rdynamic.
7059
7060 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
7061
7062         PR c/23143
7063         * c-parser.c (c_parser_parms_list_declarator): Call
7064         mark_forward_parm_decls.
7065         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
7066         decls with visibility structure.
7067
7068 2005-07-30  Paul Brook  <paul@codesourcery.com>
7069
7070         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
7071
7072 2005-07-30  Paul Brook  <paul@codesourcery.com>
7073
7074         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
7075         prototype.
7076         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
7077         value for mode.
7078         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
7079
7080 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7081
7082         PR c/529
7083         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
7084         nested function declarators.
7085         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
7086         (grokparms): Call warn_if_shadowing for parameters used within the
7087         parameter list.
7088         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
7089         not used within the parameter list.
7090         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
7091
7092 2005-07-30  Jan Hubicka  <jh@suse.cz>
7093
7094         * expr.c (expand_expr_real_1): Do not load mem targets into register.
7095         * i386.c (ix86_fixup_binary_operands): Likewise.
7096         (ix86_expand_unary_operator): Likewise.
7097         (ix86_expand_fp_absneg_operator): Likewise.
7098         * optabs.c (expand_vec_cond_expr): Validate dest.
7099
7100 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7101
7102         PR c/21720
7103         * real.c (real_from_string): Also set last bit if there is a
7104         nonzero hex digit beyond GCC's internal precision after ".".
7105
7106 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
7107
7108         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
7109         define_constants.  Change duplicate values to unassigned numbers.
7110         Change UNSPEC_SUBS to UNSPEC_VSUBS.
7111         (*altivec_vspltsf): New.
7112         (altivec_vperm_v4sf): Delete.
7113         (altivec_vperm_<mode>): Use mode macro V.
7114         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
7115         (altivec_predicate_v4sf): Delete.
7116         (altivec_predicate_<mode>): Use mode macro V.
7117         (*altivec_lvesfx): New.
7118         (*altivec_stvesfx): New.
7119         (vec_realign_load_v4sf): Delete.
7120         (vec_realign_load_<mode>): Use mode macro V.
7121         * config/rs6000/rs6000.c (generate_set_vrsave): Use
7122         UNSPECV_SET_VRSAVE.
7123
7124 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
7125
7126         PR bootstrap/23131
7127         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
7128         string.
7129         * configure: Regenerated.
7130
7131 2005-07-29  Paul Brook  <paul@codesourcery.com>
7132
7133         * doc/install.texi: Add link to GFortran binaries wiki page.
7134
7135 2005-07-29  David Ung  <davidu@mips.com>
7136
7137         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
7138         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
7139         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
7140         * config/mips/mips.md (cpu): Add 5kf name.
7141         (includes): Includes 5k.md.
7142         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
7143         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
7144         -march flag.
7145
7146 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
7147
7148         PR 22550
7149         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
7150         (cleanup_tree_cfg): ... here.
7151         Call cleanup_tree_cfg_1 until there are no more cleanups to
7152         do.
7153
7154 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
7155
7156         * tree-vrp.c (compare_range_with_value): Return true or false
7157         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
7158         EQ_EXPR respectively.
7159
7160 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
7161
7162         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
7163         Fix comment typos.
7164
7165 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
7166
7167         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
7168         (tree_ssa_dominator_optimize): Increment it.
7169         (dump_dominator_optimization_stats): Print it.
7170
7171 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
7172             Steven Bosscher  <stevenb@suse.de>
7173
7174         PR rtl-optimization/23117
7175         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
7176         when head == tail.  Tidy comment.
7177
7178 2005-07-28  Richard Henderson  <rth@redhat.com>
7179
7180         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
7181         * cselib.c (rtx_equal_for_cselib_p): Likewise.
7182         * jump.c (rtx_renumbered_equal_p): Likewise.
7183         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
7184         CONST_INT and CONST_DOUBLE.
7185         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
7186         * reload.c (operands_match_p): Special case CONST_INT and
7187         CONST_DOUBLE; check mode earlier.
7188
7189 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7190
7191         PR c/22240
7192         * c-typeck.c (convert_for_assignment): Do not check
7193         DECL_IN_SYSTEM_HEADER on NULL fundecl.
7194
7195 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7196
7197         PR c/22192
7198         * c-typeck.c (composite_type): Prefer constant size arrays to
7199         VLAs.
7200
7201 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7202
7203         PR c/21720
7204         * real.c (real_from_string): Set last bit if there is a nonzero
7205         hex digit beyond GCC's internal precision.
7206
7207 2005-07-28  Richard Henderson  <rth@redhat.com>
7208
7209         PR rtl-opt/22619
7210         * cfgcleanup.c (try_forward_edges): Watch out for end of
7211         insn chain.
7212
7213 2005-07-28  James E Wilson  <wilson@specifixinc.com>
7214
7215         PR c/23106
7216         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
7217
7218 2005-07-28  Jan Hubicka  <jh@suse.cz>
7219
7220         * Makefile.in (rtl-profile.o): Kill all traces of it.
7221         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
7222         * coverage.h (rtl_coverage_counter_ref): Kill.
7223         * opts.c (flag_speculative_prefetching_set): Kill.
7224         (flag_loop_optimize_set): New.
7225         (common_handle_option): Disable loop optimizer when profiling;
7226         do not handle speculative prefetching.
7227         * passes.c (init_optimization_passes): Replace pass_profiling combo
7228         by branch_prob pass.
7229         * profile.c (compute_value_histograms): Update for simplified value
7230         profiles.
7231         (rtl_register_profile_hooks): Kill.
7232         (pass_profiling): Kill.
7233         (rest_of_handle_branch_prob): Do not profile.
7234         * toplev.c (process_options): Remove speculative prefetching.
7235         * toplev.h (flag_tree_based_profiling): Kill.
7236         * tree-profile.c (prepare_instrumented_value,
7237         tree_gen_interval_profiler, tree_gen_pow2_profiler,
7238         tree_gen_one_value_profiler, do_tree_profiling): Update for
7239         simplified datastructures.
7240         * value-prof.c: Add comment that speculative prefetching was dropped;
7241         update rest of file for simplified datastructures.
7242         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
7243         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
7244         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
7245         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
7246         rtl_mod_subtract, gen_speculative_prefetch,
7247         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
7248         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
7249         (gate_handle_value_profile_transformations,
7250         rest_of_handle_value_profile_transformations,
7251         pass_value_profile_transformations): Kill.
7252         * value-prof.h (histogram_value_t): Remove IL based unions.
7253         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
7254         rtl_profile_hooks): Remove hooks.
7255
7256         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
7257
7258         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
7259         (cgraph_clone_node): Likewise.
7260         * cgraph.h (cgraph_clone_edge): Update prototype.
7261         (cgraph_clone_node): Likewise.
7262         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
7263         cgraph_clone_node.
7264         (lookup_recursive_calls): Consider profile.
7265         (cgraph_decide_recursive_inlining): Fix updating; use new
7266         probability argument; use profile.
7267         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
7268         * tree-inline.c (copy_bb): Update clal of clone_edge.
7269         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
7270
7271         * invoke.texi (min-inline-recursive-probability): Document.
7272
7273 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
7274
7275         * doc/install.texi (Configuration): Update Valgrind homepage.
7276
7277 2005-07-28  Richard Henderson  <rth@redhat.com>
7278
7279         PR middle-end/21362
7280         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
7281         labels we want to delete.
7282         (cfg_layout_merge_blocks): Likewise.
7283
7284 2005-07-28  Richard Henderson  <rth@redhat.com>
7285
7286         PR target/17692
7287         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
7288         when expanding to nothing.
7289
7290 2005-07-28  Josh Conner  <jconner@apple.com>
7291
7292         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
7293         (cgraph_decide_inlining_of_small_functions): Likewise.
7294
7295 2005-07-28  Josh Conner  <jconner@apple.com>
7296
7297         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
7298         direction of badness if negative.
7299         (cgraph_default_inline_p): Add reason to parameters, and assign it
7300         a value.
7301         (cgraph_decide_inlining_of_small_functions): New parameter in call
7302         to cgraph_default_inline_p.
7303         (cgraph_decide_inlining_incrementally): Likewise.
7304         * cgraphunit.c (decide_is_function_needed): Likewise.
7305         * cgraph.h (cgraph_default_inline_p): Likewise.
7306
7307 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7308
7309         * builtins.c: Fix comment typo(s).
7310         * genautomata.c: Likewise.
7311         * gimplify.c: Likewise.
7312         * tree-dfa.c: Likewise.
7313         * tree-flow-inline.h: Likewise.
7314         * tree-into-ssa.c: Likewise.
7315         * tree-ssa-alias.c: Likewise.
7316         * tree-ssa-ccp.c: Likewise.
7317         * tree-ssa-copy.c: Likewise.
7318         * tree-ssa-dce.c: Likewise.
7319         * tree-ssa-dom.c: Likewise.
7320         * tree-ssa-operands.c: Likewise.
7321         * tree-tailcall.c: Likewise.
7322         * tree-vectorizer.c: Likewise.
7323         * tree-vrp.c: Likewise.
7324         * tree.c: Likewise.
7325
7326 2005-07-28  Jeff Law  <law@redhat.com>
7327
7328         * tree-vrp.c (test_for_singularity): Extracted from  ...
7329         (simplify_cond_using_ranges): Attempt to simplify a relational
7330         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
7331
7332 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
7333
7334         PR tree-optimization/22506
7335         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
7336         phis whose argument is constant.
7337
7338 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
7339
7340         PR rtl-optimization/18992
7341         Back out this patch:
7342           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7343           PR optimization/12142
7344           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
7345           uses of the register in the SET_SRC.  Remove unnecessary argument.
7346
7347         Replace it with this:
7348         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
7349         if flag_non_call_exceptions is set and the insn may trap, pass
7350         pc_rtx as dest for recursion.
7351         In SET_SRC part of SET case, if dest is already set, pass it down
7352         unchanged.
7353
7354 2005-07-28  Jan Hubicka  <jh@suse.cz>
7355
7356         * cfg.c (update_bb_profile_for_threading): Use RDIV.
7357         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
7358         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
7359         roundoff errors.
7360         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
7361         profile when available.
7362
7363 2005-07-28  Jan Beulich <jbeulich@novell.com>
7364
7365         * config/ia64/ia64.c (ia64_load_pair_ok): New.
7366         (ia64_print_operand): Describe and handle 'X'.
7367         (ia64_register_move_cost): Also handle FP_REGS.
7368         (ia64_preferred_reload_class): Likewise.
7369         (ia64_secondary_reload_class): Likewise.
7370         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
7371         it. Also check for ITANIUM_CLASS_FLDP.
7372         * config/ia64/ia64.h (FP_REGNO_P): New.
7373         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
7374         (reg_class): Add FP_REGS.
7375         (REG_CLASS_NAMES): Adjust for it.
7376         (REG_CLASS_CONTENTS): Likewise.
7377         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
7378         (REG_CLASS_FROM_LETTER): Handle 'x'.
7379         (CLASS_MAX_NREGS): Handle FP_REGS.
7380         (MEMORY_MOVE_COST): Likewise.
7381         * config/ia64/ia64.md (itanium_class): Add fldp.
7382         (type): Handle fldp.
7383         (movti_internal): More allowable operand combinations. Use ldfp8 when
7384         splitting unnecessary. Remove predicable attribute. Adjust
7385         itanium_class attribute.
7386         (smuldi3_highpart): Remove outdated comment.
7387         (mulditi3, umulditi3, rotlti3): New expanders.
7388         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
7389         (absti2): Disabled new insn for future reference.
7390         Respective new splitters.
7391         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
7392         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
7393         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
7394
7395 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
7396
7397         PR rtl-optimization/23047
7398         * simplify-rtx.c (simplify_const_relational_operation): Respect
7399         flag_wrapv for comparisons with ABS.
7400
7401 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
7402
7403         PR tree-optimization/22493
7404         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
7405         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
7406
7407 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
7408
7409         * config/frv/frv.opt (moptimize-membar): New.
7410
7411         * doc/invoke.texi: Document -moptimize-membar and its inverse.
7412
7413         * config/frv/frv.h: Remove machine_function definition.
7414
7415         * config/frv/frv.c (struct frv_io): New.
7416         (struct machine_function): Moved from frv.h.  Add has_membar_p.
7417         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
7418         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
7419         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
7420         (frv_optimize_membar_global, frv_optimize_membar): New functions.
7421         (frv_reorg): Call frv_optimize_membar when appropriate.
7422         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
7423         (frv_expand_builtin): Adjust calls accordingly.
7424         (frv_io_address_cookie): New function.
7425         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
7426         load or store rather than a special insn.  Add ccnstant address and
7427         io-type operands to the membar.
7428         (frv_ifcvt_modify_tests): Unsign regno.
7429         (frv_ifcvt_modify_tests): Same.
7430
7431         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
7432         UNSPEC_OPTIONAL_MEMBAR constant.
7433         (builtin_read_<mode>): Delete.
7434         (builtin_write_<mode>): Delete.
7435         ("optional_membar_<mode>"): Add operand.
7436
7437         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
7438         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
7439         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
7440         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
7441         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
7442         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
7443         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
7444         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
7445         * testsuite/gcc.target/frv/all-read-write-1.c: New.
7446
7447 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
7448
7449         * df.c (df_uses_record): Handle SCRATCH.
7450
7451 2005-07-28  Steven Bosscher  <stevenb@suse.de>
7452
7453         PR debug/20161
7454         * passes.c (rest_of_decl_compilation): If decl is a type and
7455         we have encountered errors, don't emit debug information.
7456
7457 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
7458
7459         * params.def: Fixed comment.
7460
7461 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
7462
7463         PR target/19885
7464         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
7465         (TARGET_ASM_UNALIGNED_HI_OP): Add.
7466         (TARGET_ASM_UNALIGNED_SI_OP): Add.
7467
7468 2005-07-27  Steven Bosscher  <stevenb@suse.de>
7469
7470         PR c++/22003
7471         * varasm.c (assemble_start_function): Don't do anything that may
7472         require a CFG if the current function is a thunk.
7473
7474 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
7475
7476         * doc/install.texi (Prerequisites): Mention that perl is needed
7477         to do export control in libstdc++ targetting Darwin.
7478
7479 2005-07-27  Steven Bosscher  <stevenb@suse.de>
7480
7481         PR rtl-optimization/17808
7482         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
7483         (sched_insns_conditions_mutex_p): Split out from...
7484         (add_dependence): ...here.  But don't call it from here.
7485         (add_dependence_list): Check sched_insns_conditions_mutex_p
7486         before calling add_dependence.
7487         (add_dependence_list_and_free): Likewise.
7488         (fixup_sched_groups): Likewise.
7489         (sched_analyze_1): Likewise.
7490         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
7491         (sched_analyze): Likewise.
7492         (sched_analyze_insn): Likewise.
7493         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
7494         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
7495         dependencies on all COND_EXEC insns to jumps ending basic blocks
7496         when doing intrablock scheduling.
7497         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
7498
7499 2005-07-27  Jeff Law  <law@redhat.com>
7500
7501         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
7502         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
7503         equivalency sets, correctly handle the case were vr0 has an
7504         equivalency set, but vr1 does not.
7505
7506 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
7507
7508         PR tree-optimization/23073
7509         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
7510         vect_print_dump_info before fprintf.
7511
7512 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
7513
7514         PR tree-optimize/22348
7515         * tree-ssa-loop-niter.c (number_of_iterations_cond):
7516         Fold the partial computation.
7517
7518 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
7519
7520         PR tree-optimization/22325
7521         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
7522         Declare.
7523         * tree-scalar-evolution.c (scev_const_prop): Add generic final
7524         value replacement.
7525         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
7526         (force_var_cost): ... this function.
7527         (compute_phi_arg_on_exit): Export.
7528
7529 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
7530
7531         PR tree-optimization/20773
7532         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
7533         edge.
7534
7535 2005-07-27  Richard Guenther  <rguenther@suse.de>
7536
7537         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
7538         Avoid pushing again if current struct contains only
7539         fields we decomposed.
7540
7541 2005-07-27  Jan Hubicka  <jh@suse.cz>
7542
7543         PR tree-optimization/22574
7544         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
7545         not available.
7546
7547         * tree-tailcall.c (decrease_profile): New function.
7548         (eliminate_tail_call): Use it.
7549
7550         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
7551         visibility flags correctly in whole program mode.
7552
7553 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
7554
7555         PR rtl-optimization/22472
7556         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
7557
7558 2005-07-26  Steven Bosscher  <stevenb@suse.de>
7559
7560         PR tree-optimization/22504
7561         * tree-complex.c (expand_complex_addition): Use 'code' instead
7562         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
7563
7564 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
7565
7566         * config.gcc (cpu_type): Add frv case.
7567         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
7568         (supported_defaults): Add fr550 case.
7569
7570 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
7571
7572         PR 22591
7573         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
7574         whether a pointer of type T * may point to objects of type T *.
7575
7576 2005-07-26  DJ Delorie  <dj@redhat.com>
7577
7578         * configure: Regenerate.
7579
7580 2005-07-26  Dale Johannesen  <dalej@apple.com>
7581
7582         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
7583
7584 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
7585
7586         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
7587         Clarify use of "build" in name.
7588
7589 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
7590
7591         * doc/extend.texi (Raw read/write Functions): New section.
7592         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
7593         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
7594         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
7595         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
7596         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
7597         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
7598         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
7599         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
7600         * config/frv/frv.c: Add bdesc_loads global.
7601         Add bdesc_stores global.
7602         (frv_init_builtins): Add support for __builtin_{read/write}*.
7603         (frv_volatile_memref): New.
7604         (frv_expand_load_builtin): New.
7605         (frv_expand_store_builtin): New.
7606         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
7607         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
7608         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
7609         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
7610         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
7611         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
7612         (builtin_read_<mode>): New.
7613         (builtin_write_<mode>): New.
7614         (builtin_write64): New.
7615         (optional_membar_<mode>): New.
7616
7617 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
7618
7619         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
7620         (rather than units) against HOST_BITS_PER_WIDE_INT.
7621
7622 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
7623
7624         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
7625         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
7626         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
7627         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
7628         FSF address.
7629
7630         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
7631         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
7632         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
7633         comment typos.
7634         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
7635
7636 2005-07-26  Richard Guenther  <rguenther@suse.de>
7637
7638         PR tree-optimization/22486
7639         * fold-const.c (fold_unary): Fold away useless component
7640         references of the form (T *)&T.x, if the address
7641         doesn't change.
7642
7643 2005-07-25  James E Wilson  <wilson@specifixinc.com>
7644
7645         * dwarf2out.c (add_call_src_coords_attributes): New.
7646         (gen_inlined_subroutine_die): Call it.
7647         (maybe_emit_file, init_file_table): Add comments.
7648         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
7649         maybe_emit_file.
7650         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
7651         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
7652         * tree.h (BLOCK_SOURCE_LOCATION): New.
7653         (struct tree_block): New field locus.
7654
7655 2005-07-26  Andreas Schwab  <schwab@suse.de>
7656
7657         PR rtl-optimization/23043
7658         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
7659         when allocating a struct unoccr.
7660
7661 2005-07-25  Richard Henderson  <rth@redhat.com>
7662
7663         PR 22626
7664         * tree-complex.c (gate_no_optimization): True if errors.
7665         * Makefile.in (tree-complex.o): Update dependencies.
7666
7667 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
7668
7669         * config/frv/predicates.md (integer_register_operand): Use
7670         GPR_AP_OR_PSEUDO_P.
7671
7672 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
7673
7674         PR tree-opt/22484
7675         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
7676         after fold.
7677         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
7678
7679 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
7680
7681         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
7682         types when flag_unsafe_math_optimizations is true.
7683
7684 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
7685
7686         * gcc.c (option_map): Add --sysroot.
7687         (process_command): Handle --sysroot.
7688         (display_help): Document it.
7689         * doc/cppopts.tex (-isysroot): Document.
7690         * doc/invoke.texi (--sysroot): Document.
7691         * doc/install.texi (--with-build-sysroot): Document.
7692
7693         * Makefile.in (inhibit_libc): New variable.
7694         (INHIBIT_LIBC_CFLAGS): Likewise.
7695         (LIBGCC2_CFLAGS): Include
7696         $(INHIBIT_LIBC_CFLAGS).
7697         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
7698         ($(T)crtbegin.o): Do not use @inhibit_libc@.
7699         ($(T)crtend.o): Likewise.
7700         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
7701         ($(T)crtendS.o): Likewise.
7702         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
7703         ($(T)crtendT.o): Likewise.
7704         (stmp-fixinc): Do not complain about missing headers if
7705         inhibit_libc.
7706         * configure.ac (inhibit_libc): Set it to true/false.
7707         (--with-build-sysroot): New option.  Use it to set
7708         SYSTEM_HEADER_DIR.
7709         * configure: Regenerated.
7710
7711 2005-07-25  Manfred Hollstein  <mh@suse.com>
7712
7713         * calls.c (store_one_arg): Fix unsigned comparison warning.
7714
7715 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7716
7717         PR other/22337
7718         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
7719         (ggc_print_statistics): Initialize variable before use.
7720
7721 2005-07-25  Richard Guenther  <rguenther@suse.de>
7722
7723         * tree-dfa.c (mark_new_vars_to_rename): Protect against
7724         calling with a PHI_NODE argument.
7725
7726         * tree-flow-inline.h (overlap_subvar): Protect against
7727         possible overflow.
7728
7729 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
7730
7731         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
7732         * configure: Regenerate.
7733
7734 2005-07-25  Ira Rosen  <irar@il.ibm.com>
7735
7736         * expr.c (highest_pow2_factor): Make extern.
7737         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
7738         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
7739         record_array_differ_p, array_ptr_differ_p): Likewise.
7740         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
7741         additional cases. Call the above functions.
7742         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
7743         base_object_differ_p when there are two base objects. Otherwise, compare
7744         base address and offset. Call may_alias_p.
7745         (dump_data_reference): Use a correct field name.
7746         (analyze_array): Make static. Initialize new data-ref fields.
7747         (analyze_indirect_ref): New function.
7748         (init_data_ref): Initialize new data-ref fields.
7749         (strip_conversion): Moved from tree-vect-analyze.c.
7750         (analyze_offset_expr, get_ptr_offset, address_analysis,
7751         object_analysis): Likewise.
7752         (analyze_offset): New function.
7753         (create_data_ref): Likewise.
7754         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
7755         dimensions for ARRAY_REFs only.
7756         (build_classic_dist_vector): Make static.
7757         (access_functions_are_affine_or_constant_p): Call macro to get the
7758         address of access functions.
7759         (compute_all_dependences): Add new parameter
7760         compute_self_and_read_read_dependences. Compute self and read-read
7761         dependences if it is true.
7762         (find_data_references_in_loop): Call create_data_ref. Initialize new
7763         data-ref fields.
7764         (compute_data_dependences_for_loop): Add new parameter
7765         compute_self_and_read_read_dependences. Remove parameter nb_loops,
7766         compute nb_loops. Call compute_all_dependences,
7767         build_classic_dist_vector and build_classic_dir_vector with correct
7768         parameters.
7769         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
7770         with correct parameters. Compare dimensions for ARRAY_REFs only.
7771         (free_data_refs): Call macro to free access functions.
7772         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
7773         fields from stmt_vinfo.
7774         (struct base_object_info): New structure.
7775         (struct data_reference): Move fields to base_object_info. Add fields
7776         first_location and object_info for above structures. Move fields from
7777         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
7778         aligned_to.  Add macros to access the new fields.
7779         Update functions declarations.
7780         * tree-flow.h (is_aliased_with): Declare.
7781         * tree-loop-linear.c (linear_transform_loops): Call
7782         compute_data_dependences_for_loop with correct parameters.
7783         * tree-ssa-alias.c (is_aliased_with): New function.
7784         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
7785         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
7786         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
7787         vect_base_addr_differ_p, compute_subscript_distance and
7788         build_classic_dist_vector. Add printings. Check absolute value of
7789         distance.
7790         (vect_analyze_data_ref_dependences): Go through ddrs instead of
7791         data-refs.
7792         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
7793         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
7794         to bytes. Add printing.
7795         (vect_compute_data_refs_alignment): Go through loads and stores in one
7796         loop.
7797         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
7798         vect_analyze_data_ref_access): Likewise.
7799         (vect_analyze_pointer_ref_access): Remove.
7800         (vect_address_analysis, vect_object_analysis): Likewise.
7801         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
7802         and analyze data-refs in the loop.
7803         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
7804         fields of data-ref instead of stmt. Add init to the offset from the
7805         base.
7806         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
7807         (vect_update_init_of_dr): Likewise.
7808         (vect_update_inits_of_drs): Go through loads and stores in one loop.
7809         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
7810         removed fields.
7811         (new_loop_vec_info): Initialize new fields.
7812         (destroy_loop_vec_info): Free new fields.
7813         (vect_strip_conversion): Remove.
7814         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
7815         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
7816         datarefs. Add new field ddrs.
7817         Add macros for the new fields access.
7818         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
7819         base_aligned_p, misalignment, memtag, ptr_info and subvars.
7820         Remove their macros.
7821         * tree.h (highest_pow2_factor): Declare.
7822
7823 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
7824
7825         * calls.c (store_one_arg): Check for sibling call MEM arguments
7826         from already clobbered incoming argument area.
7827
7828 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7829
7830         * c-common.c (check_missing_format_attribute): New.
7831         * c-common.h (check_missing_format_attribute): Likewise.
7832         * c-typeck.c (convert_for_assignment): Use it.
7833
7834 2005-07-24  Andreas Schwab  <schwab@suse.de>
7835
7836         * config/m68k/m68k.md ("extendqidi2"): When source is an address
7837         register use a word move.  Correct operand of ext.w in 68000 code.
7838
7839 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
7840
7841         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
7842         variables as declarations, rather than definitions.
7843
7844 2005-07-24  Ira Rosen  <irar@il.ibm.com>
7845
7846         PR tree-optimization/22526
7847         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
7848         of the zero node.
7849
7850 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7851
7852         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
7853         that C99 reserve for future use. Use it to define clog10,
7854         clog10f and clog10l.
7855
7856 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7857
7858         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
7859         * configure.ac: Check for -Wmissing-format-attribute.
7860
7861         * configure: Regenerate.
7862
7863 2005-07-23  Richard Henderson  <rth@redhat.com>
7864
7865         PR tree-optimization/22623
7866         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
7867
7868 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
7869
7870         PR target/22577
7871         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
7872
7873 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7874
7875         * Makefile.in (C_TREE_H): Update dependencies.
7876         * c-tree.h: Include toplev.h.
7877         * diagnostic.h (diagnostic_set_info): Add format attribute.
7878         * rtl-error.c (diagnostic_for_asm): Likewise.
7879
7880 2005-07-23  Chao-ying Fu  <fu@mips.com>
7881
7882         * config/mips/mips-dsp.md: New file.
7883         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
7884         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
7885         functions.
7886         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
7887         MIPS_BUILTIN_BPOSGE32.
7888         (mips_expand_builtin_direct): Add one parameter to indicate that
7889         builtin functions need to return a value.
7890         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
7891         functions.
7892         (mips_regno_to_class): Add classes for 12 new DSP registers.
7893         (mips_subword): Change to check four HI registers.
7894         (mips_output_move): Output move to and from 6 new DSP accumulators.
7895         (override_options): Make sure -mdsp and -mips16 are not used together.
7896         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
7897         for machine modes.
7898         (mips_conditional_register_usage): Disable 6 new DSP accumulators
7899         when !TARGET_DSP.
7900         (print_operand): Add 'q' for printing DSP accumulators.
7901         (mips_cannot_change_mode_class): Check ACC_REGS.
7902         (mips_secondary_reload_class): Check ACC_REGS.
7903         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
7904         (mips_register_move_cost): Check ACC_REGS.
7905         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
7906         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
7907         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
7908         (dsp_bdesc): New array.
7909         (bdesc_arrays): Add DSP builtin function table.
7910         (mips_prepare_builtin_arg): Check predicate again after
7911         copy_to_mode_reg.
7912         (mips_expand_builtin): Add one more parameter to
7913         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
7914         MIPS_BUILTIN_BPOSGE32.
7915         (mips_init_builtins): Initialize new function types.
7916         (mips_expand_builtin_direct): Check if builtin functions need to
7917         return a value and pass operands properly.
7918         (mips_expand_builtin_bposge): New function.
7919         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
7920         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
7921         (FIRST_PSEUDO_REGISTER): Increase to 188.
7922         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
7923         Update for 12 new DSP registers.
7924         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
7925         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
7926         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
7927         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
7928         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
7929         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
7930         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
7931         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
7932         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
7933         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
7934         (REGISTER_NAMES): Add names for 12 new DSP registers.
7935         * config/mips/mips.md: Include mips-dsp.md.
7936         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
7937         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
7938         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
7939         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
7940         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
7941         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
7942         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
7943         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
7944         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
7945         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
7946         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
7947         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
7948         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
7949         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
7950         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
7951         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
7952         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
7953         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
7954         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
7955         (UNSPEC_RDDSP): New constants.
7956         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
7957         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
7958         A<-d alternative.
7959         * config/mips/mips.opt (-mdsp): New option.
7960         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
7961         (reg_imm10_operand): New predicates.
7962         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
7963         * doc/invoke.texi (-mdsp): Document new option.
7964
7965 2005-07-22  DJ Delorie  <dj@redhat.com>
7966
7967         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
7968         to warning calls.
7969         * tree-inline.c (inlinable_function_p): Likewise.
7970
7971 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
7972
7973         PR debug/21828
7974         * toplev.c (check_global_declarations): Do not mark undefined
7975         variables as DECL_IGNORED_P.
7976         * varasm.c (first_global_object_name): GTY it.
7977         (weak_global_object_name): Likewise.
7978         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
7979         a string to go into {weak,first}_global_object_name.
7980
7981 2005-07-22  DJ Delorie  <dj@redhat.com>
7982
7983         * c-format.c (check_function_format): Change warning control
7984         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
7985
7986 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
7987
7988         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
7989         &PTR->FLD a dereference of PTR.
7990         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
7991         a potential dereference of PTR.
7992
7993 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
7994
7995         PR rtl-optimization/20370
7996         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
7997         call allocate_reg_info if necessary.
7998
7999         PR rtl-optimization/21848
8000         * calls.c (emit_library_call_value_1): For const functions, add
8001         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
8002
8003         PR rtl-optimization/22445
8004         * cselib.c (target.h): Include.
8005         (rtx_equal_for_cselib_p): Allow commutative matches.
8006         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
8007         Remove MODE parameter.  Changed all callers.
8008
8009         PR rtl-optimization/22258
8010         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
8011         New functions.
8012         (try_combine): Use likely_spilled_retval_p.
8013
8014 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
8015
8016         * config.gcc: Add crx-elf support.
8017
8018         * doc/contrib.texi: Mention crx.
8019         * doc/extend.texi: Document crx extensions.
8020         * doc/install.texi: Document crx install.
8021         * doc/invoke.texi: Document crx options.
8022         * doc/md.texi: Document crx constraints.
8023
8024         * config/crx/crx-protos.h: New file.
8025         * config/crx/crx.c: New file.
8026         * config/crx/crx.h: New file.
8027         * config/crx/crx.md: New file.
8028         * config/crx/crx.opt: New file.
8029         * config/crx/t-crx: New file.
8030
8031 2005-07-22  Manfred Hollstein  <mh@suse.com>
8032
8033         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
8034         warnings.
8035         (int_add_graph_edge): Likewise.
8036         (collapse_nodes): Likewise.
8037         (process_unification_queue): Likewise.
8038
8039 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8040             Laurent GUERBY  <laurent@guerby.net>
8041
8042         PR tree-optimization/22336
8043         * function.c (record_block_change): Check for
8044         cfun->ib_boundaries_block.
8045
8046 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
8047
8048         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
8049         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
8050
8051 2005-07-21  DJ Delorie  <dj@redhat.com>
8052
8053         * toplev.c (warn_deprecated_use): Add warning control to warning
8054         call.
8055         * c-typeck.c (parser_build_binary_op): Likewise.
8056         (c_finish_if_stmt): Likewise.
8057         * c-common.c (check_function_sentinel): Likewise.
8058         (check_nonnull_arg): Likewise.
8059
8060 2005-07-21  Richard Henderson  <rth@redhat.com>
8061
8062         PR tree-opt/22504
8063         * tree-complex.c (complex_ssa_name_components): New.
8064         (cvc_lookup): Allow entry not found.
8065         (create_components): Remove.
8066         (create_one_component_var, get_component_var): New.
8067         (get_component_ssa_name, set_component_ssa_name): New.
8068         (extract_component): Use get_component_ssa_name.
8069         (update_complex_components): Use set_component_ssa_name.
8070         (update_complex_components_on_edge): Likewise.
8071         (update_phi_components): Create new PHI nodes directly, instead
8072         of adding insns to edges.
8073         (tree_lower_complex): Allocate and free complex_variable_components
8074         and complex_ssa_name_components here.
8075
8076 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
8077
8078         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
8079         revert to returning false.
8080
8081 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
8082
8083         PR target/21149
8084         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
8085
8086 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
8087
8088         PR target/22576
8089         * config/i386/i386.md (cmpxf): Change operand constraints
8090         to "nonmemory_operand".
8091
8092 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
8093
8094         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
8095
8096 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
8097
8098         PR middle-end/21180
8099         * fold-const.c (fold_build1): Add checksum for the operands.
8100         (fold_build2): Likewise.
8101         (fold_build3): Likewise.
8102
8103 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
8104
8105         PR middle-end/19055
8106         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
8107
8108 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
8109
8110         * common.opt (-fforward-propagate): Committed by mistake,
8111         removed.
8112
8113 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8114
8115         * reg-stack.c: Fix comment typo(s).
8116         * tree-ssa-operands.c: Likewise.
8117         * tree-vectorizer: Likewise.
8118
8119 2005-07-21  Nick Clifton  <nickc@redhat.com>
8120
8121         * config/sh/symbian.c: Replace C++ style line comments with C
8122         style line comments.
8123         (symbian_add_attribute): Do not use a ? operator on the LHS of
8124         an assignment.
8125         (sh_symbian_handle_dll_attribute): Change the type of the
8126         method vector to "VEC(tree,gc)*" and use vector accessor
8127         macros to walk over the elements.
8128         (symbian_export_vtable_and_rtti_p): Likewise.
8129         (symbian_class_needs_attribute_p): Likewise.
8130
8131 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
8132
8133         PR target/22085
8134         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
8135         initialize targetm.resolve_overloaded_builtin here.
8136         (altivec_expand_overloaded_builtin): Make it non-static.
8137         * config/rs6000/rs6000-protos.h
8138         (altivec_expand_overloaded_builtin): New prototype.
8139         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
8140         targetm.resolve_overloaded_builtin here.
8141         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
8142
8143 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
8144             Zdenek Dvorak  <dvorakz@suse.cz>
8145
8146         PR tree-optimization/19210
8147         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
8148         New.
8149         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
8150         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
8151         rely on unproven assumptions.
8152         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
8153         * tree-flow.h (number_of_iterations_exit): Add final parameter.
8154         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
8155         to number_of_iterations_exit.
8156         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
8157         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
8158         * tree-ssa-loop-niter.c (find_loop_niter,
8159         estimate_numbers_of_iterations_loop): Likewise.
8160         (number_of_iterations_exit): Honor the new options.
8161         * doc/invoke.texi (Wunsafe-loop-optimizations,
8162         funsafe-loop-optimizations): Document them.
8163
8164 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
8165
8166         PR rtl-optimization/22167
8167         * gcse.c (hoist_code): Fix hoist_exprs[] check.
8168
8169 2005-07-20  Adam Nemet  <anemet@lnxw.com>
8170
8171         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
8172         __do_global_dtors_aux longcall.
8173
8174 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
8175
8176         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
8177         (old_special_pred_table): Don't reference
8178         SPECIAL_MODE_PREDICATES.
8179         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
8180         * config/arc/arc.h: Don't mention PREDICATE_CODES.
8181         * config/sh/predicates.h: Don't mention
8182         SPECIAL_MODE_PREDICATES.
8183         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
8184         Remove.
8185
8186 2005-07-20  DJ Delorie  <dj@redhat.com>
8187
8188         * config.gcc: Add m32c-elf support.
8189
8190         * doc/contrib.texi: Mention m32c.
8191         * doc/extend.texi: Document m32c extensions.
8192         * doc/install.texi: Mention m32c.
8193         * doc/invoke.texi: Document m32c options.
8194         * doc/md.texi: Document m32c constraints.
8195
8196         * config/m32c/addsub.md: New file.
8197         * config/m32c/bitops.md: New file.
8198         * config/m32c/cond.md: New file.
8199         * config/m32c/jump.md: New file.
8200         * config/m32c/m32c-lib1.S: New file.
8201         * config/m32c/m32c-lib2.c: New file.
8202         * config/m32c/m32c-modes.def: New file.
8203         * config/m32c/m32c-pragma.c: New file.
8204         * config/m32c/m32c-protos.h: New file.
8205         * config/m32c/m32c.abi: New file.
8206         * config/m32c/m32c.c: New file.
8207         * config/m32c/m32c.h: New file.
8208         * config/m32c/m32c.md: New file.
8209         * config/m32c/m32c.opt: New file.
8210         * config/m32c/minmax.md: New file.
8211         * config/m32c/mov.md: New file.
8212         * config/m32c/muldiv.md: New file.
8213         * config/m32c/predicates.md: New file.
8214         * config/m32c/prologue.md: New file.
8215         * config/m32c/shift.md: New file.
8216         * config/m32c/t-m32c: New file.
8217
8218 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8219
8220         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
8221         (stack_protect_set, stack_protect_test): New expanders.
8222         (stack_protect_set_si, stack_protect_set_si_media,
8223         stack_protect_set_di_media, stack_protect_test_si,
8224         stack_protect_test_si_media, stack_protect_test_di_media):
8225         New insns.
8226
8227 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
8228
8229         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
8230
8231 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
8232
8233         * tree.h (tree_expr_nonzero_p): Export.
8234         * fold-const.c (tree_expr_nonzero_p): Likewise.
8235         Return true for CALL_EXPRs that are alloca calls.
8236         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
8237         against zero.
8238         * tree-flow.h (expr_computes_nonzero): Remove.
8239         * tree-vrp.c (expr_computes_nonzero): Remove.
8240         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
8241         (extract_range_from_unary_expr): Likewise.
8242         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
8243         tree_expr_nonzero_p.
8244
8245 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
8246
8247         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
8248         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
8249         extra arg "picreg" and use it instead of pic_offset_table_rtx.
8250         All callers changed.
8251         (frame_related_constant_load): New arg "related" which controls
8252         setting of RTX_FRAME_RELATED_P.  All callers changed.
8253         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
8254         (bfin_expand_prologue): Add stack limit checking.
8255         * config/bfin/bfin.md (trapifcc): New pattern.
8256
8257         * config/bfin/bfin.c: Include "langhooks.h".
8258         (def_builtin): Go through lang_hooks to call builtin_function.
8259
8260         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
8261         * config/bfin/predicates.md (symbol_ref_operand): New.
8262         (call_insn_operand): Delete.  All callers changed to use
8263         register_no_elim_operand.
8264         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
8265         call_cookie field.
8266         (function_arg): Use it to generate the call's operand 2.
8267         (bfin_longcall_p): New function.
8268         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
8269         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
8270         determine if the address needs to be in a REG.
8271         (bfin_handle_longcall_attribute): New function.
8272         (bfin_attribute_table): Add "longcall" and "shortcall".
8273         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
8274         (CUMULATIVE_ARGS): New member call_cookie.
8275         (PREDICATE_CODES): Add symbol_ref_operand.
8276         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
8277         extra USE to the pattern.
8278         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
8279         New patterns, split off call_insn, sibcall_insn, call_value_insn and
8280         sibcall_value_insn; now the new patterns handle direct calls and the
8281         old ones indirect calls.
8282         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
8283
8284 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
8285
8286         * doc/trouble.texi: Update section on handling of empty loops.
8287
8288 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
8289
8290         * config.gcc: Remove support for sparc-*-openbsd*,
8291         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
8292         ns32k-*-netbsd*.
8293         * config.host: Remove support for i860-*-sysv4* as a host.
8294         * config/i860/*, config/ip2k/*, config/ns32k/*,
8295         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
8296         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
8297         mention obsolete ports.
8298
8299 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8300
8301         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
8302         soft frame pointer.
8303         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
8304         of frame_pointer_rtx.
8305         (sh_expand_epilogue): Likewise.
8306         (sh_set_return_address): Likewise.
8307         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
8308         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
8309         offsets from FRAME_POINTER_REGNUM.
8310         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
8311         (sh_register_names): Add initializer for sfp.
8312         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
8313         (VALID_REGISTER_P): Likewise.
8314         (FIRST_PSEUDO_REGISTER): Update.
8315         (DWARF_FRAME_REGISTERS): Define.
8316         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
8317         (HARD_FRAME_POINTER_REGNUM): Define.
8318         (FRAME_POINTER_REGNUM): Redefine.
8319         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
8320         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
8321         from FRAME_POINTER_REGNUM.
8322         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
8323         FRAME_POINTER_REGNUM.
8324         (REG_CLASS_CONTENTS): Add sfp.
8325         (REG_ALLOC_ORDER): Likewise.
8326         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
8327         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
8328         of frame_pointer_rtx.
8329         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8330
8331 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
8332
8333         * fold-const.c (tree_expr_nonnegative_p): Only return true for
8334         ABS_EXPR when flag_wrapv is false because of INT_MIN.
8335         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
8336         of an ABS_EXPR.
8337         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
8338         ABS_EXPR<x>.
8339
8340 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
8341
8342         Make CONSTRUCTOR use VEC to store initializers.
8343         * c-common.c (complete_array_type): Update to cope with VEC in
8344         CONSTRUCTOR_ELTS.
8345         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
8346         (pp_c_constructor_elts): New function.
8347         * c-pretty-print.h (pp_c_constructor_elts): Declare.
8348         * c-typeck.c (build_function_call, build_c_cast, digest_init,
8349         struct constructor_stack, struct initializer_stack,
8350         constructor_elements, push_init_level, pop_init_level,
8351         add_pending_init, find_init_member, output_init_element): Update to
8352         cope with VEC in CONSTRUCTOR_ELTS.
8353         * coverage.c (build_fn_info_value, build_ctr_info_value,
8354         build_gcov_info): Likewise.
8355         * expr.c (categorize_ctor_elements_1, store_constructor,
8356         expand_expr_real_1): Likewise.
8357         * fold-const.c (fold_ternary): Likewise.
8358         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
8359         gimplify_init_constructor, gimplify_expr): Likewise.
8360         * tree-dump.c (dequeue_and_dump): Likewise.
8361         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
8362         node.
8363         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
8364         CONSTRUCTOR_ELTS.
8365         * tree-sra.c (generate_element_init_1): Likewise.
8366         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
8367         * tree-ssa-operands.c (get_expr_operands): Likewise.
8368         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
8369         * tree-vect-transform.c (vect_get_vec_def_for_operand):
8370         (get_initial_def_for_reduction): Likewise.
8371         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
8372         value handle in annotations.
8373         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
8374         tree_node_structure): Add support for constr_kind.
8375         (build_vector_from_ctor, build_constructor_single,
8376         build_constructor_from_list): New functions.
8377         (build_constructor): Update to take a VEC instead of a TREE_LIST.
8378         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
8379         Update to cope with VEC in CONSTRUCTOR_ELTS.
8380         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
8381         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
8382         CONSTRUCTOR_APPEND_ELT): New macros.
8383         (struct constructor_elt, struct tree_constructor): New data types.
8384         (union tree_node): Add tree_constructor field.
8385         * treestruct.def: Define TS_CONSTRUCTOR.
8386         * varasm.c (const_hash_1, compare_constant, copy_constant,
8387         compute_reloc_for_constant, output_addressed_constants,
8388         initializer_constant_valid_p, output_constant,
8389         array_size_for_constructor, output_constructor): Update to cope with
8390         VEC in CONSTRUCTOR_ELTS.
8391         * vec.h (VEC_empty, VEC_copy): New macros.
8392
8393 2005-07-19  Devang Patel  <dpatel@apple.com>
8394
8395         * dbxout.c (dbxout_type): Check Objective-C++ lang.
8396
8397 2005-07-19  Richard Henderson  <rth@redhat.com>
8398
8399         PR tree-opt/22278
8400         * gimplify.c (gimplify_expr): Use main variant type for the temp
8401         destination for a discarded volatile read.
8402         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
8403         casts between non-void types that change volatility.
8404
8405 2005-07-15  DJ Delorie  <dj@redhat.com>
8406
8407         * toplev.h: Add comment about the first parameter for warning().
8408         * errors.h: Likewise.
8409
8410         * c.opt (Wpragmas): New.
8411         * doc/invoke.texi: Document it.
8412
8413         * function.c (do_warn_unused_parameter): Add warning control to
8414         warning call.
8415         * c-decl.c (warn_if_shadowing): Likewise.
8416         * c-lex.c (cb_def_pragma): Likewise.
8417         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
8418         (pop_alignment): Likewise.
8419         (handle_pragma_pack): Likewise.
8420         (apply_pragma_weak): Likewise.
8421         (handle_pragma_weak): Likewise.
8422         (handle_pragma_redefine_extname): Likewise.
8423         (add_to_renaming_pragma_list): Likewise.
8424         (handle_pragma_extern_prefix): Likewise.
8425         (maybe_apply_renaming_pragma): Likewise.
8426         (handle_pragma_visibility): Likewise.
8427
8428         * config/c4x/c4x-c.c (BAD): Likewise.
8429         (c4x_parse_pragma): Likewise.
8430         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
8431         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
8432         (rs6000_pragma_longcall): Likewise.
8433         * config/v850/v850-c.c (pop_data_area): Likewise.
8434         (ghs_pragma_section): Likewise.
8435         (ghs_pragma_section): Likewise.
8436         (ghs_pragma_interrupt): Likewise.
8437         (ghs_pragma_starttda): Likewise.
8438         (ghs_pragma_startsda): Likewise.
8439         (ghs_pragma_startzda): Likewise.
8440         (ghs_pragma_endtda): Likewise.
8441         (ghs_pragma_endsda): Likewise.
8442         (ghs_pragma_endzda): Likewise.
8443
8444 2005-07-19  Danny Berlin <dberlin@dberlin.org>
8445             Kenneth Zadeck <zadeck@naturalbridge.com>
8446
8447         * Makefile.in: Removed tree-promote-statics.c
8448         * tree-promote-statics.c: Removed.
8449         * common.opt: Removed flag-promote-statics.
8450         * opts.c: Ditto.
8451         * passes.c: Removed tree-promote-statics pass.
8452         * tree-pass.h: Ditto.
8453         * timevar.def: Removed TV_PROMOTE_STATICS.
8454
8455
8456 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
8457
8458         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
8459         and *-*-freebsd9.
8460         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
8461
8462 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8463
8464         PR c/22476
8465         * c-common.c (check_function_arguments): Call
8466         'check_function_format' if either -Wformat or
8467         -Wmissing-format-attribute are specified.
8468         * c-format.c (check_function_format): Check -Wformat before
8469         calling 'check_format_info'.
8470         * c-opts.c (c_common_post_options): Don't warn for
8471         -Wmissing-format-attribute without -Wformat.
8472         * c-typeck.c (convert_for_assignment): Detect additional cases for
8473         -Wmissing-format-attribute.
8474         * doc/invoke.texi (-Wmissing-format-attribute): Document new
8475         behavior.
8476
8477 2005-07-19  Richard Guenther  <rguenther@suse.de>
8478
8479         * config/i386/i386.md (lrint<mode>2): Use temporary
8480         instead of clobbering non-existent memory.
8481
8482 2005-07-19  Nick Clifton  <nickc@redhat.com>
8483
8484         * config/avr/avr.c (legitimate_address_p): Fix debugging print
8485         statement to avoid displaying ASCII control characters.
8486
8487 2005-07-19  Ben Elliston  <bje@au.ibm.com>
8488
8489         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
8490         * cfganal.c (find_edge_index): Ditto.
8491         * combine.c (combine_instructions): Ditto.
8492         * ddg.c (create_scc): Ditto.
8493         (find_successors): Ditto.
8494         (find_predecessors): Ditto.
8495         (find_nodes_on_paths): Ditto.
8496         (longest_simple_path): Ditto.
8497         * flow.c (update_life_info): Ditto.
8498         (count_or_remove_death_notes): Ditto.
8499         (clear_log_links): Ditto.
8500         * modulo-sched.c (generate_reg_moves): Ditto.
8501         (find_max_asap): Ditto.
8502         (find_max_hv_min_mob): Ditto.
8503         (find_max_dv_min_mob): Ditto.
8504         * sbitmap.c (sbitmap_first_set_bit): Ditto.
8505         * sched-rgn.c (extract_edgelst): Ditto.
8506         * tree-into-ssa.c (prepare_names_to_update): Ditto.
8507         (dump_update_ssa): Ditto.
8508         (ssa_names_to_replace) Ditto.
8509         (switch_virtuals_to_full_rewrite): Ditto.
8510         (update_ssa): Ditto.
8511         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
8512
8513 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
8514
8515         Fix PR tree-optimization/22483
8516
8517         * tree-complex.c (create_components): Use
8518         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
8519         * tree-flow-inline.h (fill_referenced_var_vec): New function.
8520         * tree-flow.h (safe_referenced_var_iterator): New structure.
8521         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
8522         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
8523         safe_referenced_var iterator.
8524         (add_type_alias): Ditto.
8525
8526 2005-07-19  Steven Bosscher  <stevenb@suse.de>
8527
8528         * loop-init.c (rest_of_handle_loop2): Remove.
8529         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
8530         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
8531         (pass_rtl_loop_init, pass_rtl_loop_done,
8532         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
8533         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
8534         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
8535         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
8536         pass_tree_loop_done, and pass_tree_unswitch.
8537         (gate_loop): Rename to gate_tree_loop.
8538         * passes.c (init_optimization_passes): Update for renamed tree
8539         loop passes.  Add the new loop2 passes as subpasses of loop2.
8540         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
8541         Update for the renamed tree loop passes.
8542
8543 2005-07-18  Ian Lance Taylor  <ian@airs.com>
8544
8545         PR middle-end/22057
8546         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
8547         blocks when optimizing.
8548
8549 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
8550
8551         * common.opt (frename-registers): Initialize to 2.
8552         (fweb): Ditto.
8553         (fgcse-after-reload): Ditto.
8554         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
8555         (process_options): Only change flag_web, flag_rename_registers,
8556         and flag_rerun_cse_after_loop if not explicitly set by user.
8557
8558 2005-07-18  Jan Beulich  <jbeulich@novell.com>
8559
8560         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
8561         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
8562         in 64-bit mode the same as DImode in 32-bit mode.
8563         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
8564         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
8565         mode. Add new mode parameter.
8566         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
8567         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
8568         x86_64_shift_adj): New expanders.
8569         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
8570         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
8571         insns.
8572         Respective new splitters. Use renamed shift splitter helpers in 32-bit
8573         DImode shift splitters.
8574         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
8575         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
8576         mode parameter.
8577
8578 2005-07-18  Jan Beulich  <jbeulich@novell.com>
8579
8580         * i386.md (movdi_extzv_1): New.
8581         (zero_extendhidi2): Combine alternatives and never force use of
8582         REX64 prefix.
8583         (zero_extendqidi2): Likewise. Don't restrict input selection.
8584
8585 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
8586
8587         Fix PR tree-optimization/22531
8588         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
8589          moment.
8590
8591 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
8592
8593         * tree-promote-statics.c (pass_promote_statics): Change dump file
8594          name.
8595
8596 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
8597
8598         * tree-optimize.c (init_tree_optimization_passes): Add
8599         pass_eliminate_useless_stores pass.
8600         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
8601         * tree-ssa-pre.c (is_copy_stmt): New function.
8602         (follow_copies_till_vuse): Ditto.
8603         (do_eustores): Ditto.
8604         (gate_eustores): Ditto.
8605
8606 2005-07-16  Richard Henderson  <rth@redhat.com>
8607
8608         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
8609
8610 2005-07-16 Danny Berlin <dberlin@dberlin.org>
8611            Kenneth Zadeck <zadeck@naturalbridge.com>
8612
8613         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
8614         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
8615         ipa-type-escape.h, tree-promote-statics.c
8616         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
8617         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
8618         tree-promote-statics.c: new files.
8619         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
8620         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
8621         int nonlocal_set_p, mark_constant_function): Deleted.
8622         (rest_of_handle_cfg): Removed call to mark_constant_function.
8623         (nonoverlapping_component_refs_p): Added calls to support
8624         type based aliasing.
8625         * tree-ssa-alias.c (may_alias_p,
8626         compute_flow_insensitive_aliasing): Ditto.
8627         * calls.c (flags_from_decl_or_type): Removed reference to
8628         cgraph_rtl_info.
8629         * c-typeck.c (convert_arguments): Make builtins tolerant of having
8630         too many arguments.  This is necessary for Spec 2000.
8631         * cgraph.h (const_function, pure_function): Removed.
8632         * common.opt: Added "fipa-pure-const", "fipa-reference",
8633         "fipa-type-escape", and "ftree-promote-static".
8634         * opts.c: Ditto.
8635         * passes.c: Added ipa and tree-promote-statics passes.
8636         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
8637         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
8638         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
8639         * tree-flow.h: Added exposed sra calls and addition of
8640         reference_vars_info field for FUNCTION_DECLS.
8641         * tree-pass.h: Added passes.
8642         * tree-sra.c: (sra_init_cache): New function.
8643         (sra_insert_before, sra_insert_after) Made public.
8644         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
8645         and made public.
8646         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
8647         aliasing. (may_alias_p): Added code to use type escape analysis to
8648         improve alias sets.
8649         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
8650         code to prune clobbers of static variables based on information
8651         produced in ipa-reference pass.  Changed call clobbering so that
8652         statics are not marked as clobbered if the call does not clobber
8653         them.
8654
8655 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
8656
8657         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
8658         too.
8659
8660 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
8661
8662         * doc/install.texi (*-*-solaris2*): Document recommended version
8663         of GNU binutils and mention GNU linker problem on Solaris 10.
8664
8665 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
8666
8667         PR c/22421
8668         * c-decl.c (c_build_bitfield_integer_type): New function.
8669         (finish_struct): Call it.
8670         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
8671
8672 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8673
8674         * c-typeck.c (digest_init): Call 'convert_for_assignment'
8675         before returning.
8676
8677 2005-07-16  Jan Hubicka  <jh@suse.cz>
8678
8679         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
8680         (scale_bbs_frequencies_int): Watch roundoff errors.
8681         * predict.c (return_prediction): Initialize return_stmt.
8682
8683 2005-07-16  Jan Hubicka  <jh@suse.cz>
8684
8685         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
8686         after RTL profiling.
8687
8688 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
8689
8690         PR middle-end/22398
8691         * fold-const.c (build_range_check): Convert high/low to etype
8692         if we are only comparing against exp.
8693
8694 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
8695
8696         Fix PR tree-optimization/22376
8697         * tree-ssa-structalias.c (build_constraint_graph): We really meant
8698         special var here.
8699         (need_to_solve): New function.
8700         (compute_points_to_sets): Use it.
8701
8702 2005-07-15  Jan Hubicka  <jh@suse.cz>
8703
8704         * cfg.c (update_bb_profile_for_threading): More diagnostic.
8705         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
8706
8707 2005-07-15  Richard Guenther  <rguenther@suse.de>
8708
8709         * c-common.c (handle_flatten_attribute): New function.
8710         Add flatten function attribute.
8711         * doc/extend.texi: Document flatten function attribute.
8712         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
8713         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
8714         New functions.
8715         (cgraph_decide_inlining): Handle functions with flatten
8716         attribute.
8717
8718 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
8719
8720         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
8721         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
8722         UNSPEC_XCHG, UNSPEC_AND): New.
8723         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
8724         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
8725         * config/rs6000/sync.md (FETCHOP): New code macro.
8726         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
8727         New code attrs.
8728         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
8729         (sync_compare_and_swap<mode>): Same.
8730         (sync_lock_test_and_set<mode>): Same.
8731         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
8732         for QImode and HImode, and not PPC405.
8733         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
8734         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
8735         (sync_<fetchop>{si,di}_internal): New.
8736         (sync_nand{si,di}_internal): New.
8737         (sync_old_<fetchop>{si,di}_internal): New.
8738         (sync_old_nand{si,di}_internal): New
8739         (sync_new_<fetchop>{si,di}_internal): New.
8740         (sync_new_nand{si,di}_internal): New.
8741         (atomic_and{si,di}): New.
8742         (sync_new_nand{si,di}_internal): New.
8743         (atomic_and{si,di}): New.
8744         (sync_add<mode>_internal): Delete.
8745         (sync_addshort_internal): Use unspec instead of unspec_volatile.
8746         (sync_sub<mode>_internal): Delte.
8747         (sync_subshort_internal): New.
8748         (sync_andsi_internal): Use unspec instead of unspec_volatile.
8749         (sync_anddi_internal): Delete.
8750         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
8751         (sync_booldi_internal): Delete.
8752         (sync_boolc<mode>_internal): Delete.
8753         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
8754         (sync_boolc<mode>_internal2): Delete.
8755         (sync_boolcc<mode>_internal): Delete.
8756         (isync, lwsync): Use unspec instead of unspec_volatile.
8757         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
8758         Revert UNSPEC_VOLATILE.
8759         (rs6000_split_atomic_op): New.
8760         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
8761
8762 2005-07-14  Eric Christopher  <echristo@redhat.com>
8763
8764         * config/mips/mips.c (mips_canonicalize_comparison): Cast
8765         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
8766
8767 2005-07-14  Eric Christopher  <echristo@redhat.com>
8768
8769         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
8770
8771 2005-07-14  Steven Bosscher  <stevenb@suse.de>
8772
8773         PR tree-optimization/22230
8774         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
8775         the computation of the four cross productions for "range op range".
8776
8777 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
8778             Ulrich Weigand  <uweigand@de.ibm.com>
8779
8780         PR target/20126
8781         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
8782         in some insn.
8783
8784 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
8785
8786         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
8787
8788 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
8789
8790         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
8791
8792 2005-07-14  Richard Guenther  <rguenther@suse.de>
8793
8794         PR middle-end/22347
8795         * config/i386/i386-protos.h (ix86_function_value): Change
8796         prototype to match new target hook.
8797         * config/i386/i386.c (ix86_value_regno): Change prototype
8798         to take extra type argument.
8799         (TARGET_FUNCTION_VALUE): Define.
8800         (ix86_function_ok_for_sibcall): Pass extra argument to
8801         ix86_value_regno, check return slot rtx for exact match.
8802         (ix86_function_value): Take extra parameter.  Dispatch to
8803         ix86_value_regno with fndecl/fntype as provided.
8804         (ix86_value_regno): Handle extra type argument.
8805         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
8806
8807         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
8808         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
8809         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
8810         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
8811         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
8812
8813 2005-07-14  Richard Guenther  <rguenther@suse.de>
8814
8815         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
8816         * calls.c (expand_call): Pass fntype to hard_function_value.
8817         (emit_library_call_value_1): Likewise.
8818         * explow.c: Include target.h.
8819         (hard_function_value): Take extra argument, the fntype.
8820         Use new target hook for function_value.
8821         * expr.h (hard_function_value): Change prototype.
8822         * function.c (aggregate_value_p): Pass 0 as fntype to
8823         hard_function_value.
8824         (assign_parms): Use new target hook for function_value.
8825         Pass 0 as fntype to hard_function_value.
8826         (expand_function_end): Likewise.
8827         * reg-stack.c: Include target.h.
8828         (stack_result): Use new target hook for function_value.
8829         * target-def.h: New target hook function_value.
8830         * target.h: Likewise.
8831         * targhooks.c (default_function_value): New function.
8832         * targhooks.h (default_function_value): Declare.
8833
8834 2005-07-13  Ian Lance Taylor  <ian@airs.com>
8835
8836         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
8837
8838 2005-07-14  Jan Hubicka  <jh@suse.cz>
8839
8840         * tree-dfa.c (dump_variable): Use default_def function.
8841         * tree-ssa-alias.c (dump_points_to_info): Likewise.
8842         * tree-ssa.c (verify_use): Likewise.
8843         * tree-ssanames.c (release_ssa_name): Likewise.
8844         * tree-tailcall.c (eliminate_tail_call): Likewise.
8845         (tree_optimize_tail_calls_1): Likewise.
8846         * tree-vrp.c (get_value_range): Likewise.
8847
8848 2005-07-14  Ben Elliston  <bje@au.ibm.com>
8849
8850         * gcc.c (main): Compare language[0] with '*' when iterating over
8851         the infiles.
8852
8853 2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
8854
8855         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
8856         "s390_emit_compare".  Add handling of CCZ1mode.
8857         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
8858         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
8859         checking.
8860         (s390_branch_condition_mask): Add CCZ1mode handling.
8861         * config/s390/s390.md: ("seq", "*seq"): New pattern.
8862         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
8863         Use CCZ1mode instead of CCZmode.
8864         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
8865
8866 2006-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
8867
8868         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
8869         pattern.
8870         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
8871
8872 2005-07-13  Eric Christopher  <echristo@redhat.com>
8873
8874         * config/mips/mips.c (mips_canonicalize_comparison): New.
8875         (mips_emit_int_relational): Use.
8876
8877 2005-07-13  Eric Christopher  <echristo@redhat.com>
8878
8879         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
8880         static extra parts.
8881         * config/s390/s390.md: Include tpf.md. Move tpf specific
8882         patterns...
8883         * config/s390/tpf.md: To here.
8884         * config/s390/s390.opt: Move tpf specific options...
8885         * config/s390/tpf.opt: to here. Add mmain option.
8886         * config/s390/tpf-unwind.h: Remove unnecessary defines.
8887         * config/s390/tpf.h: Rewrite.
8888
8889 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
8890
8891         * doc/tm.texi: Remove @xref{Cross-profiling}.
8892
8893 2005-07-13  Jeff Law  <law@redhat.com>
8894
8895         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
8896         expressions, test their _DECL operands for pointer equality rather
8897         than using operand_equal_p.
8898
8899 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
8900
8901         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
8902         (TARGET_POSIX_IO): This.
8903         * config/darwin.h: Likewise.
8904         * config/freebsd.h: Likewise.
8905         * config/linux.h: Likewise.
8906         * config/lynx.h: Likewise.
8907         * config/netbsd.h: Likewise.
8908         * config/rs6000/linux64.h: Likewise.
8909         * config/rs6000/linux.h: Likewise.
8910         * config/s390/tpf.h: Likewise.
8911         * config/sh/embed-elf.h: Likewise.
8912         * config/sparc/linux64.h: Likewise.
8913         * config/sparc/linux.h: Likewise.
8914         * config/svr4.h: Likewise.
8915         * gcov-io.h: Likewise.
8916
8917         * doc/tm.texi: Updated.
8918
8919         * libgcov.c (create_file_directory): Defined only if
8920         TARGET_POSIX_IO is defined.
8921         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
8922         is defined.
8923
8924 2005-07-13  Jan Hubicka  <jh@suse.cz>
8925
8926         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
8927
8928 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
8929
8930         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
8931         structure as argument.
8932
8933 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
8934
8935         PR tree-optimization/21921
8936         * tree-iterator.c (tsi_link_before): Support the case when
8937         tsi_end_p (tsi) == true.
8938
8939 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
8940
8941         PR tree-optimization/22442
8942         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
8943         correctly.
8944
8945 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
8946
8947         PR rtl-optimization/20376
8948         * toplev.c (process_options): Enable -fweb and -frename-registers when
8949         unrolling.
8950         * doc/invoke.texi: Update the information about when -fweb and
8951         -frename-registers are enabled.
8952
8953 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
8954
8955         PR tree-opt/21840
8956         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
8957         if *rhs_p is not a SSA_NAME.
8958
8959 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
8960
8961         Fix PR tree-optimization/22422
8962         * tree-ssa-structalias.c (struct variable_info): Add flag for
8963         special vars.
8964         (get_varinfo): Now a static function.
8965         (new_varinfo): init has_union and is_special_var to false.
8966         (solution_set_add): Check has_union.
8967         (do_da_constraint): Move temporary variable so it gets reset
8968         properly.
8969         Also check for special variable.
8970         (do_ds_constraint): Ditto.
8971         (do_sd_constraint): Ditto.
8972         (do_structure_copy): Check for special variable.
8973         (find_func_aliases): Ditto.
8974         (init_base_vars): Set special vars properly.
8975
8976 2005-07-13  Jan Hubicka  <jh@suse.cz>
8977
8978         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
8979         do unit-at-a-time.
8980
8981         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
8982         (get_expr_operands): Fix thinko wrt flags and subvars.
8983
8984         PR tree-optimize/22379
8985         * tree-inline.c (expand_call_inline): Do not output sorry in early
8986         inlining.
8987
8988 2005-07-12  Dale Johannesen  <dalej@apple.com>
8989
8990         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
8991
8992 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
8993
8994         PR bootstrap/21704
8995         * host-linux.h: Include limits.h.
8996
8997 2005-07-12  Dale Johannesen  <dalej@apple.com>
8998
8999         * expr.c (compress_float_constant):  Add cost check.
9000         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
9001
9002 2005-07-12  Dale Johannesen  <dalej@apple.com>
9003
9004         * gcc.target/i386/compress-float-sse.c:  New.
9005         * gcc.target/i386/compress-float-sse-pic.c:  New.
9006         * gcc.target/i386/compress-float-387.c:  New.
9007         * gcc.target/i386/compress-float-387-pic.c:  New.
9008         * gcc.dg/compress-float-ppc.c:  New.
9009         * gcc.dg/compress-float-ppc-pic.c:  New.
9010
9011 2005-07-12  Eric Christopher  <echristo@redhat.com>
9012
9013         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
9014         static extra parts.
9015         * config/s390/s390.md: Include tpf.md. Move tpf specific
9016         patterns...
9017         * config/s390/tpf.md: To here.
9018         * config/s390/s390.opt: Move tpf specific options...
9019         * config/s390/tpf.opt: to here. Add mmain option.
9020         * config/s390/tpf-unwind.h: Remove unnecessary defines.
9021         * config/s390/tpf.h: Rewrite.
9022
9023 2005-07-12  Eric Christopher  <echristo@redhat.com>
9024
9025         * gcc.c (struct infile): Update comment for language.
9026         (main): Rewrite input file resetting code.
9027
9028 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
9029
9030         PR tree-opt/22335
9031         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
9032         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
9033         (lookup_avail_expr): Use constant_boolean_node instead
9034         of boolean_false_node/boolean_true_node.
9035
9036 2005-07-12  Ben Elliston  <bje@au.ibm.com>
9037
9038         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
9039         and use it when printing num_edges.
9040
9041 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
9042
9043         * doc/extend.texi (Blackfin Built-in Functions): New section.
9044         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
9045         @opindex.
9046
9047 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
9048
9049         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
9050         s/cmpstrsi/cmpstrnsi
9051         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
9052         'cmpstrnsi'.
9053         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
9054         (init_optabs): Initialize cmpstrn_optab.
9055         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
9056         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
9057         * expr.c: (enum insn_code cmpstrn_optab): Declare.
9058         * config/i386/i386.md: s/cmpstr/cmpstrn
9059         * config/c4x/c4x.md: s/cmpstr/cmpstrn
9060         * doc/md.texi: Update documentation.
9061
9062 2005-07-11  Richard Henderson  <rth@redhat.com>
9063
9064         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
9065         build_va_arg_indirect_ref.
9066         (alpha_gimplify_va_arg): Likewise.
9067         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9068         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
9069         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
9070         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9071         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
9072         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
9073         Likewise.
9074         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
9075
9076 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
9077
9078         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
9079         * passes.c (init_optimization_passes): Add pass_empty_loop.
9080         * tree-pass.h (pass_empty_loop): Declare.
9081         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
9082         try_remove_empty_loop, remove_empty_loops): New functions.
9083         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
9084         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
9085
9086 2005-07-12  Peter Barada  <peter@the-baradas.com>
9087
9088         PR middle-end/16719
9089         PR middle-end/18421
9090         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
9091         in address registers.
9092         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
9093         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
9094         alternative of addsi3_5200.
9095
9096 2005-07-11  Ian Lance Taylor  <ian@airs.com>
9097
9098         * config/mips/mips.md (ffs<mode>2): Remove.
9099
9100 2005-07-11  Ian Lance Taylor  <ian@airs.com>
9101
9102         * doc/tree-ssa.texi (Cleanups): Improve description of
9103         TRY_FINALLY_EXPR.
9104         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
9105
9106 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
9107
9108         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
9109         * tree.h (DECL_ARGUMENT_FLD): New macro.
9110
9111 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
9112
9113         Fix PR tree-optimization/22404
9114
9115         * tree-ssa-structalias.c (create_variable_info_for): Use
9116         correct offset.
9117
9118 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9119
9120         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
9121         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
9122         for second comparison operand.
9123         * config/bfin/predicates.md (reg_or_const_int_operand): New.
9124
9125         * config/bfin/bfin.md (define_attr "type"): Add "sync".
9126         (define_insn_reservation "alu"): Likewise.
9127         (csync, ssync): Now of type sync.
9128         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
9129         -mcsync-anomaly -mspecld-anomaly.
9130         * config/bfin/bfin.opt (mcsync): Remove.
9131         (mcsync-anomaly, mspecld-anomaly): Add.
9132         * config/bfin/bfin.c: Include "insn-codes.h".
9133         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
9134         (TARGET_DEFAULT_TARGET_FLAGS): New.
9135         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
9136
9137 2005-07-11  Steven Bosscher  <stevenb@suse.de>
9138
9139         * basic-block.h: Give the BB flags enum a name, bb_flags.
9140         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
9141         * cfgcleanup.c (enum bb_flags): Remove here.
9142         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
9143         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
9144         (update_forwarder_flag): Likewise.
9145         (thread_jump): Likewise.
9146         (try_forward_edges): Likewise.
9147         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
9148         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
9149         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
9150
9151 2005-07-11  Richard Guenther  <rguenther@suse.de>
9152
9153         * config/i386/i386.opt: New target option -msseregparm.
9154         * config/i386/i386.c (override_options): Error out for
9155         -msseregparm but no SSE support.
9156         (ix86_function_sseregparm): Check for global sseregparm.
9157         * doc/invoke.texi: Document -msseregparm.
9158
9159 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
9160
9161         * config.gcc (m32r-*-linux*): Use the default extra_parts.
9162         (m32rle-*-linux*): Ditto.
9163
9164 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
9165
9166         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
9167         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
9168         bytes.
9169
9170 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9171
9172         PR middle-end/22239
9173         PR target/20126
9174         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
9175         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
9176
9177 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
9178
9179         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
9180         (varmap): Heapify varmap.
9181         (constraints): Heapify constraints.
9182         (struct constraint_graph): Heapify succs and preds.
9183         (constraint_vec_find): Update for heapification.
9184         (constraint_set_union): Ditto.
9185         (insert_into_complex): Ditto.
9186         (constraint_edge_vec_find): Ditto.
9187         (erase_graph_self_edge): Ditto.
9188         (add_graph_edge): Ditto.
9189         (get_graph_weights): Ditto.
9190         (merge_graph_nodes): Ditto.
9191         (build_constraint_graph): Ditto.
9192         (topo_visit): Ditto.
9193         (solve_graph): Ditto.
9194         (create_variable_info_for): Ditto.
9195         (init_base_vars): Ditto.
9196         (delete_points_to_sets): Free graph, varmap, and complex constraints.
9197         (condese_varmap_nodes): Free complex vector.
9198         (clear_edges_for_node): Clear succs and preds vector.
9199
9200 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
9201
9202         * tree-ssa-structalias.c (update_alias_info): Change counting of
9203         references to not include vdefs.
9204
9205 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
9206
9207         * tree-ssa-alias.c (free_used_part_map): Add missing free.
9208         (up_insert): Ditto.
9209
9210 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9211
9212         * pa.c (pa_commutative_p): Make PLUS commutative when
9213         TARGET_NO_SPACE_REGS is true.
9214
9215 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
9216
9217         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
9218         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
9219         * tree-dfa.c (dump_subvars_for): New.
9220         (debug_subvars_for): New.
9221         (dump_variable): Show subvariables if VAR has them.
9222         * tree-flow-inline.h (get_subvar_at): New.
9223         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
9224         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
9225         Update all users.
9226         (struct subvar): Change fields offset and size to unsigned
9227         HOST_WIDE_INT.
9228         (dump_subvars_for): Declare.
9229         (debug_subvars_for): Declare.
9230         (get_subvar_at): Declare.
9231         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
9232         to unsigned HOST_WIDE_INT *.
9233         (overlap_subvar): Likewise.
9234         * tree-gimple.c (is_gimple_reg): Always return false for
9235         SFTs and memory tags.
9236         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
9237         Update all callers.
9238         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
9239         (compute_may_aliases): Call compute_points_to_sets.
9240         (collect_points_to_info_for): Remove.
9241         (compute_points_to_and_addr_escape): Remove.
9242         (delete_alias_info): Call delete_points_to_sets.
9243         (compute_flow_sensitive_aliasing): If the call to
9244         find_what_p_points_to returns false, call set_pt_anything.
9245         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
9246         (set_pt_anything): Clear pi->pt_vars.
9247         (set_pt_malloc): Remove.
9248         (merge_pointed_to_info): Remove.
9249         (add_pointed_to_expr): Remove.
9250         (add_pointed_to_var): Remove.
9251         (collect_points_to_info_r): Remove.
9252         (is_escape_site): Make extern.
9253         (create_sft): New.
9254         (create_overlap_variables_for): Call it.
9255         * tree-ssa-copy.c (merge_alias_info): Never merge
9256         flow-sensitive alias information.
9257         * tree-ssa-operands.c (get_expr_operands): Adjust variables
9258         offset and size to be unsigned HOST_WIDE_INT.
9259         (add_to_addressable_set): Rename from note_addressable.
9260         Set TREE_ADDRESSABLE as the variables are added to the set.
9261         Update all users.
9262         (add_stmt_operand): Do not try to micro-optimize unmodifiable
9263         operands into VUSEs when adding V_MAY_DEFs for members in an
9264         alias set.
9265         * tree-ssa-operands.h (add_to_addressable_set): Declare.
9266         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
9267         (struct variable_info): Add bitfield is_heap_var.
9268         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
9269         (new_var_info): Initialize is_heap_var.
9270         (get_constraint_for): Add HEAP variables to the symbol table.
9271         Mark them with is_heap_var.
9272         (update_alias_info): New.  Taken mostly from the old
9273         compute_points_to_and_addr_escape.
9274         (handle_ptr_arith): New.
9275         (find_func_aliases): Call update_alias_info.
9276         Call handle_ptr_info for tcc_binary expressions.
9277         Call mark_stmt_modified.
9278         (create_variable_info_for): If DECL has subvars, do not create
9279         variables for its subvars.  Always add all the fields.
9280         (set_uids_in_ptset): If the solution includes ANYOFFSET and
9281         SFTs, then add all the SFTs of the structure.
9282         If VI->DECL is an aggregate with subvariables, add the SFT at
9283         VI->OFFSET.
9284         (find_what_p_points_to): If VI is an artificial variable,
9285         translate to bitfields in SSA_NAME_PTR_INFO.
9286         If the solution is empty, set pi->pt_vars to NULL
9287         (init_base_vars): Create ANYOFFSET.
9288         (compute_points_to_sets): Rename from create_alias_vars.
9289         Make extern.
9290         (pass_build_pta): Remove.
9291         (delete_points_to_sets): Rename from delete_alias_vars.
9292         (pass_del_pta): Remove.
9293         * tree-ssa-structalias.h (struct alias_info): Move from
9294         tree-ssa-alias.h.
9295         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
9296         NUM_REFERENCES_SET): Likewise.
9297         (compute_points_to_sets, delete_points_to_sets): Declare.
9298
9299 2005-07-09  Richard Henderson  <rth@redhat.com>
9300
9301         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
9302         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
9303         alpha_split_lock_test_and_set_12): New functions.
9304         * config/alpha/alpha-protos.h: Update.
9305         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
9306         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
9307         * config/alpha/sync.md (I12MODE): New.
9308         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
9309         (sync_<fetchop_name><I48MODE>): Likewise.
9310         (sync_nand<I48MODE>): Likewise.
9311         (sync_old_<fetchop_name><I48MODE>): Likewise.
9312         (sync_new_<fetchop_name><I48MODE>): Likewise.
9313         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
9314         (sync_compare_and_swap<I48MODE>): Likewise.
9315         (sync_lock_test_and_set<I48MODE>): Likewise.
9316         (sync_compare_and_swap<I12MODE>): New.
9317         (sync_compare_and_swap<I12MODE>_1): New.
9318         (sync_lock_test_and_set<I12MODE>): New.
9319         (sync_lock_test_and_set<I12MODE>_1): New.
9320
9321 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
9322
9323         PR 21356
9324         PR 22332
9325         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
9326
9327 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
9328
9329         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
9330         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
9331
9332 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
9333
9334         PR target/21656
9335         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
9336
9337 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
9338
9339         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
9340         memory_operand constraint.
9341         (store_conditional_<mode>): Same.
9342         (sync_compare_and_swap<mode>): Same.
9343         (sync_lock_test_and_set<mode>): Same.
9344
9345 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
9346
9347         Rewrite PIC support to more closely model actual instructions.
9348         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
9349         (cris_symbol): Remove prototypes for removed functions.
9350         (cris_pic_symbol_type_of, cris_valid_pic_const)
9351         (cris_expand_pic_call_address): Prototypes for new functions.
9352         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
9353         variable.
9354         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
9355         modifiers.
9356         <case ':'>: Add case for new punctuation character.
9357         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
9358         emitting (extra) PIC modifier.
9359         <case UNSPEC>: Do not assert for PLT.
9360         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
9361         (cris_expand_prologue, cris_expand_epilogue): Check
9362         for pic_offset_table_rtx usage instead of taking
9363         current_function_uses_pic_offset_table as the final word.
9364         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
9365         Remove flag_pic difference.
9366         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
9367         the moral equivalents of...
9368         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
9369         functions.
9370         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
9371         (cris_handle_option): Mark ARG as unused.
9372         (cris_expand_pic_call_address): New worker function for "call",
9373         "call_value".
9374         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
9375         output PIC constructs here.
9376         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
9377         as symbol-specific modifers, not whole or part of operands.
9378         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
9379         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
9380         constants and flag_pic.
9381         (CONSTANT_INDEX_P): Adjust for new functions.
9382         (enum cris_pic_symbol_type): New helper type.
9383         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
9384         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
9385         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
9386         define_constants.
9387         ("movsi"): Emit actual instructions for GOT and relative access.
9388         ("*movsi_got_load"): New pattern to set up the register holding
9389         the GOT pointer.
9390         ("*movsi_internal"): Operand 1 is not a plain general_operand.
9391         Adjust FIXME for 'S'.
9392         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
9393         Use "movs" for -fpic cases.
9394         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
9395         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
9396         ("call", "call_value"): Just call cris_expand_pic_call_address for
9397         PIC addresses.
9398         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
9399         Remove special pattern.
9400         ("*expanded_call_side", "*expanded_call_value_side"): New
9401         patterns.
9402         (gotplt-to-plt, gotplt-to-plt-side-call)
9403         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
9404         peephole2:s.
9405         * config/cris/cris/predicates.md
9406         ("cris_general_operand_or_gotless_symbol"): Remove unused
9407         predicate.
9408         ("cris_general_operand_or_symbol"): Adjust for new functions.
9409
9410 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
9411
9412         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
9413
9414 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
9415
9416         * Makefile.in (TREE_H): Add treestruct.def.
9417         (c-decl.o): Add pointer-set.h
9418         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
9419         visibility on regular DECL's.
9420         (merge_decls): Fix the copying of decl nodes of various types for
9421         the new structures.  Don't update RTL, section name, weak status,
9422         etc, on DECL's without RTL.
9423         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
9424         Don't check volatile on non-variable types.
9425         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
9426         to check whether we have seen arguments.
9427         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
9428         flag is checked before field (flag is common, field is not).
9429         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
9430         TS_DECL_COMMON could have an origin.
9431         (add_location_or_const_value_attribute): Don't check section name
9432         on non-var/function decls.
9433         (dwarf2out_var_location): Reverse order of tests.
9434         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
9435         with DECL_WRTL_CHECK.
9436         * expmed.c (make_tree): rtl is now in decl_with_rtl.
9437         * fold-const.c (fold_binary): Don't check weakness on
9438         non-var/function decls.
9439         (tree_expr_nonzero_p): Ditto.
9440         (fold_checksum_tree): Use tree_decl_extra as sizeof
9441         buffer.
9442         * ggc-page.c (extra_order_size_table): Add sizes for
9443         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
9444         tree_field_decl.
9445         * gimplify.c (gimplify_bind_expr): Only set
9446         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
9447         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
9448         without RTL.
9449         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
9450         * langhooks.h (init_ts). New langhook.
9451         * passes.c (rest_of_decl_compilation): Reverse order of tests.
9452         * print-tree.c (print_node): Update to only print fields that
9453         exist in the structures the passed decl has.
9454         * toplev.c (wrapup_global_declarations): Don't reset
9455         DECL_DEFER_OUTPUT on DECL's that don't contain it.
9456         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
9457         * tree-inline.c (remap_decl): Ditto.
9458         * tree-outof-ssa.c (create_temp): Reverse order of tests.
9459         * tree-pretty-print.c (print_declaration): Don't print
9460         DECL_REGISTER on things that don't contain it.
9461         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
9462         non-var/function decls.
9463         * tree.c (tree_contains_struct): New structure.
9464         (init_priority_for_decl): New hashtable.
9465         (tree_int_map): New structure.
9466         (tree_int_map_eq): New function.
9467         (tree_int_map_marked_p): Ditto.
9468         (tree_int_map_hash): Ditto.
9469         (tree_map): Move to tree.h.
9470         (tree_map_eq): Externalize.
9471         (tree_map_hash): Ditto.
9472         (tree_map_marked_p): Ditto.
9473         (init_ttree): Set up tree_contains_struct and call langhook.
9474         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
9475         (tree_code_size): Update for new structures.
9476         (tree_node_structure): Update for new structures.
9477         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
9478         without the field.
9479         (copy_node_stat):  Copy init priority.
9480         (build_decl_stat): Ditto for visibility.
9481         (ts_enum_names): New.
9482         (tree_contains_struct_check_failed): New function.
9483         (decl_init_priority_lookup): Ditto.
9484         (decl_init_priority_insert): Ditto.
9485         * treestruct.def: New file.
9486         * tree.h (CODE_CONTAINS_STRUCT): New macro.
9487         (CONTAINS_STRUCT_CHECK): Ditto.
9488         (tree_contains_struct_check_failed): New prototype.
9489         (DECL_CHECK): Removed.
9490         (DECL_MINIMAL_CHECK): New.
9491         (DECL_COMMON_CHECK): Ditto.
9492         (DECL_WRTL_CHECK): Ditto.
9493         (DECL_NON_COMMON_CHECK): Ditto.
9494         (DECL_WITH_VIS_CHECK): Ditto.
9495         (VAR_OR_FUNCTION_DECL_P): Ditto
9496         (struct tree_decl_minimal): New structure.
9497         (struct tree_decl_common): Ditto.
9498         (struct tree_decl_with_rtl): Ditto.
9499         (struct tree_decl_with_vis): Ditto.
9500         (struct tree_decl_non_common): Ditto.
9501         (struct tree_field_decl): Ditto.
9502         (struct tree_parm_decl): Ditto.
9503         (struct tree_var_decl): Ditto.
9504         (struct tree_function_decl): Ditto.
9505         (struct tree_const_decl): Ditto.
9506         (struct tree_result_decl): Ditto.
9507         (union tree_node): Add new structures.
9508         * var-tracking.c (track_expr_p): Reverse order of tests.
9509
9510         * doc/c-tree.texi: Add documentation on DECL node internal structure.
9511
9512 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
9513
9514         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
9515         * system.h: Poison FINALIZE_PIC.
9516         * doc/tm.texi (FINALIZE_PIC): Remove.
9517
9518 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
9519
9520         PR tree-opt/22329
9521         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
9522         to the correct type if we have a MODIFY_EXPR.
9523
9524 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
9525
9526         PR tree-optimization/22360
9527         * tree.c (upper_bound_in_type): Fix calculations for casting
9528         to a non-wider signed type and casting a signed value to a
9529         wider unsigned type.
9530         (lower_bound_in_type): Fix calculations for casting to a
9531         non-wider signed type.
9532
9533         PR tree-optimization/20139
9534         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
9535         release_defs.
9536         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
9537         fold_cond_expr_cond.
9538         * tree-ssanames.c (release_defs): Assert in_ssa_p.
9539         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
9540
9541 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
9542
9543         PR tree-opt/22356
9544         * tree-complex.c (expand_complex_libcall): Produce
9545         REALPART_EXPR/IMAGPART_EXPR with the correct type.
9546
9547 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
9548
9549         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
9550         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
9551         b" assert and inserted fastpath code for this case.
9552         (bitmap_ior): Removed "a != b" assert.
9553
9554 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
9555
9556         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
9557         (ENDFILE_SPEC): Likewise.
9558         * config/m32r/m32r.h (ASM_SPEC): Likewise.
9559
9560         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
9561         a large stack frame at epilogue.
9562
9563 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
9564
9565         * final.c: Include sdbout.h when required.
9566
9567 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
9568
9569         * config.gcc (*-*-darwin*): Only one target-specific header file
9570         for generic darwin.
9571         (powerpc-*-darwin*): Add version-specific header files.
9572         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
9573         * config.in: Regenerate.
9574         * configure: Regenerate.
9575         * gcc.c: Include xregex.h.
9576         (version_compare_spec_function): New.
9577         (spec_function): Add version-compare.
9578         (replace_outfile_spec_function): Reformat comment.
9579         (compare_version_strings): New.
9580         * config/darwin-c.c (version_as_macro): New.
9581         (builtin_define): New.
9582         (darwin_cpp_builtins): New.
9583         * config/darwin-protos.h (darwin_cpp_builtins): New.
9584         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
9585         (LIB_SPEC): Make unconditional, update comment.
9586         (TARGET_C99_FUNCTIONS): Define.
9587         * config/darwin.opt: Sort.
9588         (mmacosx-version-min=): New.
9589         * config/darwin7.h: Delete.
9590         * config/darwin8.h: Delete.
9591         * config/i386/darwin.h (): Call darwin_cpp_builtins.
9592         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
9593         (TARGET_C99_FUNCTIONS): Define.
9594         * config/rs6000/darwin7.h: New.
9595         * config/rs6000/darwin8.h: New.
9596         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
9597         (-mmacosx-version-min): Document.
9598
9599 2005-07-07  Ian Lance Taylor  <ian@airs.com>
9600
9601         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
9602
9603 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
9604
9605         PR middle-end/22239
9606         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
9607
9608 2005-07-07  Khem Raj  <kraj@mvista.com>
9609
9610         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
9611         in bytes, not words.
9612
9613 2005-07-07  Paul Brook  <paul@codesourcery.com>
9614
9615         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
9616         DEFAULT_FUNCTION_ARG_PADDING to upward.
9617
9618 2005-07-07  Richard Henderson  <rth@redhat.com>
9619
9620         * function.c (locate_and_pad_parm): Record parameter alignment in
9621         stack_alignment_needed.
9622
9623 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
9624
9625         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
9626         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
9627         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
9628         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
9629         (define_attr "type"): Add isync, sync, load_l, store_c.
9630         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
9631         Create scratch volatile MEM.
9632         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
9633         sync.
9634         (load_locked_<mode>): New.
9635         (store_conditional_<mode>): New.
9636         (sync_compare_and_swap<mode>): Replace with splitter.
9637         (sync_lock_test_and_set<mode>): Replace with splitter.
9638         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
9639         and UNSPECV_ISYNC.
9640         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
9641         is ics.  Attribute isync.
9642         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
9643         lwsync.
9644         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
9645         and UNSPECV_SYNC_OP.
9646         (emit_unlikely_jump): New.
9647         (emit_load_locked): New.
9648         (emit_store_conditional): New.
9649         (rs6000_split_compare_and_swap): New.
9650         (rs6000_split_lock_test_and_set): New.
9651         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
9652         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
9653         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
9654         rs6000_split_lock_test_and_set): Declare.
9655         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
9656         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
9657         store_c, isync, sync.
9658
9659 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
9660
9661         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
9662         filenames to gtyp-gen.h.
9663         (s-typ-gen): Use it in place of for loops.
9664
9665 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
9666
9667         * hooks.c (hook_bool_rtx_int_false): New function.
9668         * hooks.h (hook_bool_rtx_int_false): Declare.
9669         * target-def.h (TARGET_COMMUTATIVE_P): Define.
9670         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
9671         * target.h (struct gcc_target): Add commutative_p member.
9672         * targhooks.c (hook_bool_rtx_commutative_p): New function.
9673         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
9674         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
9675         (pa_commutative_p): New function.
9676         * jump.c (target.h): Include.
9677         (rtx_renumbered_equal_p): Use targetm.commutative_p.
9678         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
9679
9680 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
9681
9682         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
9683         (s390_expand_setmem): New.
9684         * config/s390/s390.c: Likewise.
9685         (print_shift_count_operand): Truncate to 12 bits instead of 6.
9686         Adapt comments.
9687         * config/s390/s390.md: ("setmem<mode>"): Accept character as
9688         general_operand.  Call new function "s390_expand_setmem".
9689         ("clrmem_long", "*clrmem_long"): Rewrite to ...
9690         ("setmem_long", "*setmem_long"): ... this.
9691
9692 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
9693
9694         * config/s390/s390.c: (optimization_options): Enable
9695         TARGET_MVCLE at -Os.
9696         * doc/invoke.texi: Document changes in default behaviour.
9697         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
9698
9699 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
9700
9701         * expr.c: (set_storage_via_setmem): Convert opchar to mode
9702         defined by back-end.
9703
9704 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
9705
9706         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
9707         all sets in the pattern.
9708         * config/rs6000/rs6000.md (stack_protect_testsi,
9709         stack_protect_testdi): Likewise.
9710
9711 2005-07-06  Jeff Law  <law@redhat.com>
9712
9713         * tree-vrp.c (simplify_using_ranges): Kill.
9714         (vrp_finalize): Remove call to simplify_using_ranges.
9715         (simplify_stmt_using_ranges): New function extracted from
9716         simplify_using_ranges.
9717         (simplify_div_or_mod_using_ranges): Likewise.
9718         (simplify_abs_using_ranges): Likewise.
9719         (simplify_cond_using_ranges): New function.
9720         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
9721         * tree-ssa-propagate.c (substitute_and_fold): Call
9722         simplify_stmt_using_ranges if we have range information.
9723
9724 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
9725
9726         * config/ia64/ia64.c (ia64_reorg): Check optimize before
9727         ia64_flag_schedule_isns2.
9728
9729         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
9730         reading/writing general registers.
9731         (ia64_function_arg): Revert 2005-06-18 change.
9732
9733 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
9734
9735         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
9736         (legitimize_tls_address): Use gcc_unreachable instead of abort.
9737
9738 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
9739
9740         * function.c (expand_function_end): Revert part of 2005-06-27
9741         patch.  Do sjlj_emit_function_exit_after after return_label.
9742
9743 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
9744
9745         * doc/install.texi (--disable-libssp): New.
9746
9747 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
9748
9749         * doc/invoke.texi: Update -fforce-mem documentation.
9750         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
9751         code for -fforce-mem.
9752         * expmed.c: (store_bit_field,store_fixed_bit_field,
9753         extract_bit_field): Ditto.
9754         * expr.c: (convert_move): Ditto.
9755         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
9756         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
9757         emit_conditional_add,expand_float,expand_fix): Ditto.
9758         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
9759         (common_handle_option): Issue warning when -fforce-mem specified.
9760
9761 2005-07-06  Paul Brook  <paul@codesourcery.com>
9762
9763         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
9764         argument is empty.
9765         * configure: Regenerate.
9766
9767 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
9768
9769         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
9770
9771 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
9772
9773         Fix PR tree-optimization/22319
9774         Fix PR tree-optimization/22140
9775         Fix PR tree-optimization/22310
9776
9777         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
9778         variable sized types.
9779         Use correct type for intermediate structure on *a = *b structure
9780         copies.
9781
9782 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
9783
9784         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
9785         Remove.
9786         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
9787         (machine_function): Move typedef to...
9788         * config/rs6000/rs6000.c (machine_function): ... here.  Add
9789         varargs_save_offset field.
9790         (rs6000_stack_t): Remove varargs_size field.
9791         (setup_incoming_varargs): Allocate varargs save area using
9792         assign_stack_local, try to make it as small as possible.
9793         Save offset from virtual_stack_vars_rtx to the save area
9794         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
9795         instead of magic 8 when fp word byte size is used.
9796         (rs6000_va_start): Use cfun->machine->varargs_save_offset
9797         instead of -RS6000_VARARGS_SIZE.
9798         (rs6000_stack_info, debug_stack_info,
9799         rs6000_initial_elimination_offset): Remove all traces of
9800         varargs_size.
9801         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
9802         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
9803         RS6000_VARARGS_AREA.
9804
9805 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
9806
9807         PR tree-optimization/21963
9808         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
9809         constant_multiple_of in the same way get_computation_cost_at does.
9810
9811 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
9812
9813         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
9814         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
9815         (gen_compare_reg): If sparc_compare_emitted is set, clear it
9816         and return its previous value.
9817         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
9818         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
9819         constants.
9820         (stack_protect_set, stack_protect_test): New expanders.
9821         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
9822         stack_protect_testdi): New insns.
9823         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
9824         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
9825
9826 2005-07-06  Jeff Law  <law@redhat.com>
9827
9828         * tree-ssa-dce.c (cfg_altered): New global.
9829         (tree_dce_init): Initialize cfg_altered.
9830         (remove_dead_stmt): If we remove an edge in the CFG, then set
9831         CFG_ALTERED.
9832         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
9833         the dominators.
9834
9835 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
9836
9837         * Makefile.in (stamp-collect-ld): Use
9838         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
9839         ./collect-ld if it already exists.
9840         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
9841         Don't remove ./nm if it already exists.
9842
9843 2005-07-05  Devang Patel  <dpatel@apple.com>
9844
9845         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
9846         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
9847         * tree-vectorizer.c (vect_loop_location): New.
9848         (vect_print_dump_info): Use vect_loop_location.
9849         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
9850         (vectorize_loops): Set vect_loop_location.
9851         * tree-vect-analyze.c (vect_analyze_offset_expr,
9852         vect_determin_vectorization_factor, vect_analyze_operations,
9853         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
9854         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
9855         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
9856         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
9857         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
9858         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
9859         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
9860         vect_analyze_loop): Adjust vect_print_dump_info API.
9861         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
9862         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
9863         vect_finish_stmt_generation, vectorizable_assignment,
9864         vectorizable_operation, vectorizable_store, vectorizable_load,
9865         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
9866         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
9867         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
9868         vect_transform_loop): Same.
9869         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
9870         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
9871         Same.
9872
9873 2005-07-05  Randolph Chung  <tausq@debian.org>
9874
9875         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
9876         * configure: Regenerate.
9877         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
9878         (pa_tls_referenced_p): Declare.
9879         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
9880         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
9881         (legitimize_tls_address): New.
9882         (hppa_legitimize_address): Handle TLS addresses.
9883         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
9884         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
9885         (emit_move_sequence): Handle TLS addresses.
9886         (pa_encode_section_info): Call default handler to handle common
9887         sections.
9888         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
9889         (CONSTANT_ADDRESS_P): Reject TLS operands.
9890         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
9891         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
9892         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
9893         (UNSPEC_TLSLE): Define new constants.
9894         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
9895         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
9896         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
9897         (tie_symbolic_operand, tle_symbolic_operand): New
9898
9899 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
9900
9901         * aclocal.m4: Update macros for autoconf 2.59 style.
9902         * configure.ac: Likewise.
9903
9904 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9905
9906         * pa.c (function_value): Handle small aggregates on 32-bit targets.
9907         (function_arg): Pass small aggregates in general registers on 32-bit
9908         targets.
9909         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
9910
9911 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
9912
9913         * Makefile.in (final.o): Fix dependencies.
9914
9915 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
9916
9917         PR c/22013
9918         PR c/22098
9919         * langhooks.h (struct lang_hooks): Add expr_to_decl.
9920         * langhooks.c (lhd_expr_to_decl): New.
9921         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
9922         New.
9923         (LANG_HOOKS_INITIALIZER): Update.
9924         * tree.c (recompute_tree_invarant_for_addr_expr): Call
9925         expr_to_decl langhook.
9926         * c-tree.h (c_expr_to_decl): Declare.
9927         * c-typeck.c (c_expr_to_decl): New.
9928         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
9929         specially.
9930         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
9931
9932 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
9933
9934         PR c/22308
9935         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
9936         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
9937
9938 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
9939
9940         * Makefile.in: Adjust dependencies.
9941         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
9942         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
9943         * alias.c (rest_of_handle_cfg, pass_cfg): New.
9944         * bb-reorder.c (duplicate_computed_gotos): Make it static.
9945         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
9946         rest_of_compilation.
9947
9948         * bb-reorder.c (gate_duplicate_computed_gotos,
9949         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
9950         rest_of_handle_reorder_blocks, pass_reorder_blocks,
9951         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
9952         pass_partition_blocks): New.
9953         * bt-load.c (gate_handle_branch_target_load_optimize,
9954         rest_of_handle_branch_target_load_optimize,
9955         pass_branch_target_load_optimize): New.
9956         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
9957         pass_jump2): New.
9958         * cfglayout.c (pass_insn_locators_initialize): New.
9959         * cfgrtl.c (pass_free_cfg): New.
9960         * combine.c (gate_handle_combine, rest_of_handle_combine,
9961         pass_combine): New.
9962         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
9963         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
9964         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
9965         * except.c (pass_set_nothrow_function_flags,
9966         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
9967         pass_rtl_eh): New.
9968         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
9969         rest_of_handle_shorten_branches, pass_shorten_branches,
9970         rest_of_clean_state, pass_clean_state): New.
9971         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
9972         rest_of_handle_remove_death_notes, pass_remove_death_notes,
9973         rest_of_handle_life, pass_life, rest_of_handle_flow2,
9974         pass_flow2): New.
9975         * function.c (pass_instantiate_virtual_regs, pass_init_function,
9976         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
9977         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
9978         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
9979         pass_gcse): New.
9980         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
9981         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
9982         pass_rtl_ifcvt, gate_handle_if_after_combine,
9983         rest_of_handle_if_after_combine, pass_if_after_combine,
9984         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
9985         pass_if_after_reload): New.
9986         * integrate.c (pass_initial_value_sets): New.
9987         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
9988         pass_purge_lineno_notes): New.
9989         * mode-switching.c (rest_of_handle_mode_switching,
9990         pass_mode_switching): New.
9991         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
9992         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
9993         pass_loop2): New.
9994         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
9995         pass_loop_optimize): New.
9996         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
9997         pass_sms): New.
9998         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
9999         pass_gcse2): New.
10000         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
10001         pass_postreload_cse): New.
10002         * profile.c (gate_handle_profiling, pass_profiling,
10003         rest_of_handle_branch_prob, pass_branch_prob): New.
10004         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
10005         pass_split_before_regstack, gate_handle_split_before_regstack,
10006         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
10007         rest_of_handle_split_all_insns, pass_split_all_insns): New.
10008         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
10009         pass_stack_regs): New.
10010         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
10011         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
10012         pass_stack_adjustments): New.
10013         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
10014         pass_regrename): New.
10015         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
10016         pass_delay_slots, gate_handle_machine_reorg,
10017         rest_of_handle_machine_reorg, pass_machine_reorg): New.
10018         * rtl.h (extern void purge_line_number_notes): New.
10019         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
10020         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
10021         pass_sched2): New.
10022         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
10023         pass_tracer): New.
10024         * value-prof.c (gate_handle_value_profile_transformations,
10025         rest_of_handle_value_profile_transformations,
10026         pass_value_profile_transformations): New.
10027         * var-tracking.c (gate_handle_var_tracking,
10028         pass_variable_tracking): New.
10029         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
10030
10031         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
10032         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10033         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10034         rest_of_handle_old_regalloc, rest_of_handle_regrename,
10035         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
10036         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
10037         rest_of_handle_gcse2, rest_of_handle_regmove,
10038         rest_of_handle_tracer, rest_of_handle_if_conversion,
10039         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
10040         rest_of_handle_web, rest_of_handle_branch_prob,
10041         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10042         rest_of_handle_jump_bypass, rest_of_handle_combine,
10043         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10044         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10045         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
10046         rest_of_handle_mode_switching, rest_of_handle_jump,
10047         rest_of_handle_eh, rest_of_handle_stack_adjustments,
10048         rest_of_handle_flow2, rest_of_handle_jump2,
10049         rest_of_handle_peephole2, rest_of_handle_postreload,
10050         rest_of_handle_shorten_branches, rest_of_clean_state,
10051         rest_of_compilation): Remove.
10052
10053         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
10054         * passes.c (dump_flags, in_gimple_form, all_passes,
10055         all_ipa_passes, all_lowering_passes, register_one_dump_file,
10056         register_dump_files, next_pass_1, last_verified, execute_todo,
10057         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
10058         from tree-optimize.c.
10059         (init_optimization_passes): Moved from tree-optimize.c,
10060         adding the RTL optimizations.
10061         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
10062         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
10063         all_ipa_passes, all_lowering_passes, register_one_dump_file,
10064         register_dump_files, next_pass_1, last_verified, execute_todo,
10065         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
10066         init_tree_optimization_passes, ipa_passes): Delete.
10067         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
10068         the RTL dumps.
10069         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
10070         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
10071         from tree.h.
10072         (ipa_passes): Remove.
10073         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
10074         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
10075         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
10076         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
10077         (dump_info_p, dump_flag): Moved to tree-dump.h.
10078
10079         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
10080         cgraph.c, opts.c.
10081         * passes.c (finish_optimization_passes): Use dump_begin
10082         and dump_end, TDI_end.
10083         (gate_rest_of_compilation): New.
10084         (pass_rest_of_compilation): Use it.
10085         (gate_postreload, pass_postreload): New.
10086         * toplev.c (general_init): Rename init_tree_optimization_passes.
10087         * toplev.h (init_tree_optimization_passes): Rename to
10088         init_optimizations_passes.
10089         * tree-dump.c (dump_flag): Make static.
10090         (dump_files): Remove RTL dumps.
10091         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
10092         pass_cleanup_cfg, pass_free_cfg_annotations,
10093         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
10094         pass_init_datastructures, pass_fixup_cfg): Make non-static.
10095         * tree-pretty-print.c: Include tree-pass.h.
10096         * cgraph.c: Include tree-dump.h.
10097
10098 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
10099
10100         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
10101         Only fall back to saying it points to readonly memory if
10102         we can't do better.
10103
10104 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10105
10106         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
10107         * config/m32r/m32r.c (m32r_compute_frame_size,
10108         m32r_expand_prologue): Take current_function_profile into
10109         account whenever we reference
10110         current_function_uses_pic_offset_table.
10111         (m32r_finalize_pic): Remove.
10112         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
10113
10114 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
10115
10116         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
10117         instead of $<.  Don't remove ./as if it already exists.
10118
10119 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10120
10121         PR target/21723
10122         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
10123         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
10124         for complex modes when generating code for PA 1.0.
10125         (VALID_FP_MODE_P): New macro.
10126         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
10127         sets for all general and floating point modes.  Align wide floating
10128         point modes to even register boundaries to comply with architectural
10129         requirements.
10130         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
10131         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
10132         (VALID_FP_MODE_P): New macro.
10133         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
10134         sets for all general and floating point modes.  Align wide floating
10135         point modes to even register boundaries to comply with architectural
10136         requirements.
10137
10138 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
10139
10140         * tree-dump.c (dump_files): Initialize dump number for .cgraph
10141         to 0.
10142
10143 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
10144
10145         * tree-ssa-structalias.c: Don't include expr.h.
10146
10147 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
10148
10149         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
10150         comments.
10151
10152 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
10153
10154         Fix PR tree-optimization/22279
10155
10156         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
10157         correct operator.
10158
10159 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
10160
10161         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
10162
10163 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
10164
10165         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
10166         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
10167         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
10168         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
10169         config/stormy16/stormy16.c, config/v850/v850.c,
10170         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
10171         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
10172         Avoid "." or "\n" at end of diagnostics and capital letters at
10173         start of diagnostics.
10174         * combine.c, cse.c: Don't translate dump file output.
10175         * toplev.c (print_version): Only translate output if going to
10176         stderr.
10177
10178 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
10179
10180         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
10181         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
10182         typos.
10183
10184 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10185
10186         * pa.c (fix_range): Fix typo in comment.
10187
10188 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
10189
10190         * tree-vrp.c (extract_range_from_assert): Replace
10191         fold (build (...)) with fold_build2.
10192
10193 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10194
10195         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
10196         gcc_gfc_char_table, init_dynamic_gfc_info): New.
10197         (format_types_orig, handle_format_attribute): Add support for
10198         format "gcc_gfc".
10199
10200 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10201
10202         * varasm.c (assemble_variable): Fix format specifier thinko.
10203
10204 2005-07-03  Ira Rosen  <irar@il.ibm.com>
10205
10206         PR tree-optimization/22029 (and 22135)
10207         * tree-pretty-print.c (dump_generic_node): Check that the node is not
10208         a phi node before calling dump_vops.
10209
10210 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10211
10212         * tree-dump.h (dump_string_field): Declare.
10213         * tree-dump.c: Use it instead of dump_string.
10214         (dump_string_field): Make non-static.
10215
10216 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
10217
10218         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
10219         up the minimal CFG stuff always when optimize > 0.  Call
10220         split_all_insns_noflow in PIC case if needed.
10221
10222 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10223             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
10224
10225         PR c++/18279
10226         * c-decl.c (c_write_global_declarations): Dump contents of
10227         external scope to.
10228         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
10229         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
10230         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
10231         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
10232         is enabled.
10233
10234 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
10235
10236         * c-common.h (GCC_DIAG_STYLE): Define.
10237         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
10238         version for format checking to 4.1.
10239         * c-format.c: Include toplev.h after c-common.h.
10240         (enum format_type): Add gcc_tdiag_format_type.
10241         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
10242         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
10243         (format_types_orig): Add gcc_tdiag.
10244         (init_dynamic_diag_info): Support gcc_tdiag formats.
10245         (handle_format_attribute): Likewise.
10246         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
10247         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
10248         version for format checking to 4.1.
10249         (warning0, warning, error, pedwarn, sorry): Use
10250         ATTRIBUTE_GCC_DIAG.
10251         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
10252         (finish_aliases_1): Do not use %qE.
10253         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
10254         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
10255         Correct format bugs.
10256         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
10257         parameter to unsigned HOST_WIDE_INT.
10258         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
10259
10260 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
10261
10262         PR middle-end/21742
10263         * expr.c (write_complex_part): Use adjust_address for MEM.
10264         (read_complex_part): Same.
10265
10266 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
10267
10268         Fix PR tree-optimization/22280
10269
10270         * tree-sra.c (generate_element_init): Remove useless loop.
10271
10272 2005-07-02  Richard Henderson  <rth@redhat.com>
10273
10274         * config/alpha/alpha.c (alpha_legitimize_address): Check for
10275         TLS_MODEL_NONE.
10276         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
10277
10278 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
10279
10280         PR middle-end/14490
10281         * fold-const.c (fold_binary): Handle the return value of
10282         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
10283         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
10284
10285 2005-07-02  Jeff Law  <law@redhat.com>
10286
10287         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
10288         a eliminate type conversion which feeds an equality comparison
10289         if the original type or either operand in the comparison is a
10290         function pointer.
10291
10292 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
10293
10294         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
10295         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
10296         texts.
10297         * config/avr/avr.c: Do not use '`' as left quote.
10298         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
10299         Remove "." from end of diagnostics.  Make diagnostics start with
10300         lowercase letter.
10301
10302 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
10303             Joseph S. Myers  <joseph@codesourcery.com>
10304
10305         * toplev.c (default_tree_printer): Handle setting location with
10306         '+' flag.
10307         * c-objc.common.c (c_tree_printer): Likewise.
10308         * c-format.c (gcc_diag_flag_specs): Add '+'.
10309         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
10310         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
10311         formats.
10312         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
10313         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
10314         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
10315         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
10316         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
10317         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
10318         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
10319         format arguments where %J is used without %D.
10320
10321 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
10322
10323         * gcc.c (LINK_SSP_SPEC): Define.
10324         (link_ssp_spec): New variable.
10325         (LINK_COMMAND_SPEC): Add %(link_ssp).
10326         (static_specs): Add link_ssp_spec.
10327         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
10328         * configure: Rebuilt.
10329         * config.in: Rebuilt.
10330
10331         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
10332         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
10333         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
10334         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
10335         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
10336         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
10337         -0x7008(2) instead of reading __stack_chk_guard variable.
10338         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
10339         number.
10340         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
10341         (stack_protect_set, stack_protect_test): Use *_tls* patterns
10342         if TARGET_THREAD_SSP_OFFSET is defined.
10343         (stack_tls_protect_set_si, stack_tls_protect_set_di,
10344         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
10345
10346         Revert:
10347         2005-06-27  Richard Henderson  <rth@redhat.com>
10348         * libgcc-std.ver (GCC_4.1.0): New.
10349         * libgcc.h (__stack_chk_guard): Declare.
10350         (__stack_chk_fail, __stack_chk_fail_local): Declare.
10351         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
10352         * mklibgcc.in (lib2funcs): Add them.
10353
10354 2005-07-01  Richard Henderson  <rth@redhat.com>
10355
10356         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
10357         void * before struct sigcontext *.
10358         (x86_fallback_frame_state): Likewise.
10359
10360 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
10361
10362         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
10363
10364 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
10365
10366         PR tree-opt/22269
10367         * tree-ssa-reassoc.c (should_transpose): Fix which operand
10368         we check for SSA_NAME for.
10369
10370 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
10371
10372         Fix PR tree-optimization/22071
10373
10374         * tree-ssa-structalias.c (offset_overlaps_with_access): New
10375         function.
10376         (get_constraint_for_component_ref): Use it.
10377
10378 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
10379
10380         PR other/22264
10381         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
10382         print out the last new line.
10383
10384 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
10385
10386         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
10387         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
10388         * config/cris/cris.c (cris_conditional_register_usage): Adjust
10389         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
10390         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
10391         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
10392         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
10393         (enum reg_class): New member CC0_REGS.
10394         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
10395         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
10396         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
10397         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
10398         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
10399         Adjust for register now described.
10400
10401 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
10402
10403         PR target/22262
10404         * config/i386/i386.md (stack_protect_test_si,
10405         stack_protect_test_di): Add earlyclobber for scratch 3.
10406         * config/rs6000/rs6000.md (stack_protect_testsi,
10407         stack_protect_testdi): Add earlyclobber for scratch 3,
10408         remove earlyclobber from scratch 4.
10409
10410 Older entries for 2005 can be found in ChangeLog-2005.