OSDN Git Service

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