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