OSDN Git Service

PR fortran/25586
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3         PR fortran/25586
4         * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
5         store patterns.
6
7 2005-12-29  Mike Stump  <mrs@apple.com>
8
9         * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
10         -fobjc-exceptions): Don't imply this doesn't work with the GNU
11         runtime.
12
13 2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14
15         * varasm.c (get_section): Use gcc_assert.
16
17 2005-12-29  Paul Brook  <paul@codesourcery.com>
18
19         * config/m68k/m68k.h (RETURN_ADDR_RTX): Define.
20         * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME.
21         Include offset due to FIRST_PARM_OFFSET.
22
23 2005-12-29  Paul Brook  <paul@codesourcery.com>
24
25         * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask.
26         Create wrapper and rename body...
27         (__cmpdf2_internal): ... to this.  Return correct value for unordered
28         result.
29         (__cmpsf2): Create wrapper and rename body...
30         (__cmpsf2_internal): ... to this.  Return corerct value for unordered
31         result.
32         (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use
33         __cmpdf2_internal.
34         (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use
35         __cmpsf2_internal.
36
37 2005-12-29  Paul Brook  <paul@codesourcery.com>
38
39         * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero.
40         (__truncdfsf2): Ditto.
41         (__extenddfxf2): Ditto.
42         (__truncxfdf2): Ditto.
43         * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0.
44         (__adddf3): Ditto.
45
46 2005-12-29  Daniel Jacobowitz  <dan@codesourcery.com>
47         Paul Brook  <paul@codesourcery.com>
48
49         * config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
50         !TARGET_68020.
51         * config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
52         (EXTRA_MULTILIB_PARTS): Set.
53         * config/m68k/t-uclinux (EXTRA_PARTS): Remove.
54         (EXTRA_MULTILIB_PARTS): Set.
55
56 2005-12-29  Alan Modra  <amodra@bigpond.net.au>
57
58         PR target/25572
59         * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.
60
61 2005-12-28  Nathan Sidwell  <nathan@codesourcery.com>
62
63         * config.gcc (mt-*-*): Add --with-arch support.
64         (--with): Print accepted options on error.
65         * config/mt/mt.h (OPTION_DEFAULT_SPECS): Define.
66
67         * config/mt/mt.c (DEF_VEC_P(basic_block),
68         DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here.
69
70 2005-12-28  Daniel Berlin  <dberlin@dberlin.org>
71
72         Fix PR tree-optimization/25394
73         * fold-const.c (fold_checksum_tree): Guard 
74         portions of checksumming with correct structure checks.
75
76 2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
77
78         * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
79         DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ...
80         * basic-block.h: ... here.
81
82 2005-12-27  Roger Sayle  <roger@eyesopen.com>
83
84         * fold-const.c (int_const_binop): Return NULL_TREE when an expression
85         can't be evaluated at compile-time (instead of calling abort).
86         Return NULL_TREE for division (and modulus) by zero.
87         (const_binop):  Return NULL_TREE for floating point operators that
88         aren't handled by real_arithmetic.
89         (fold_binary):  Eliminate "wins" variable, and "binary" label, by
90         folding operators with constant operands early.  Assert that
91         operands are non-NULL.
92
93 2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
94
95         * tree-vrp.c (extract_range_from_binary_expr): Use
96         build_int_cst instead of fold_convert.
97
98 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
99
100         PR c++/23171, c++/23172, c++/25417.
101         * c-decl.c (compound_literal_number): Remove.
102         (build_compound_literal): Use set_compound_literal_name.
103         * c-common.c (compound_literal_number): New variable.
104         (set_compound_literal_name): New function.
105         * c-common.h (set_compound_literal_name): Declare.
106         
107 2005-12-26  Kazu Hirata  <kazu@codesourcery.com>
108
109         PR tree-optimization/25125
110         * convert.c (convert_to_integer): Don't narrow the type of a
111         PLUX_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type
112         is signed.
113
114 2005-12-26  Graham Stott  <graham.stott@btinternet.com>
115
116         PR middle-end/25568
117         * combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking
118         rtl bootstrap failure.
119
120 2005-12-25  Kazu Hirata  <kazu@codesourcery.com>
121
122         * final.c (compute_alignments): Make it static.
123         * gcse.c (gcse_main, bypass_jumps): Likewise.
124         * web.c (web_main): Likewise.
125         * output.h: Remove the prototype for compute_alignments.
126         * rtl.h: Remove the prototypes for web_main, gcse_main, and
127         bypass_jumps.
128
129 2005-12-24  Roger Sayle  <roger@eyesopen.com>
130
131         * expr.c (force_operand): Use expand_fix and expand_float to
132         implement integer <-> FP conversions instead of convert_to_mode.
133
134 2005-12-24  Mark Mitchell  <mark@codesourcery.com>
135
136         PR c++/23171
137         * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a
138         CONSTRUCTOR is invalid.
139
140 2005-12-23  Daniel Berlin  <dberlin@dberlin.org>
141
142         * tree-pass.h (pass_eliminate_useless_stores): Remove.
143         * tree-ssa-pre.c (is_copy_stmt): Ditto.
144         (follow_copies_till_vuse): Ditto.
145         (do_eustore): Ditto.
146         (gate_eustores): Ditto.
147         (pass_eliminate_useless_stores): Ditto.
148         * passes.c (init_optimization_passes): Ditto.
149
150 2005-12-23  Paolo Bonzini  <bonzini@gnu.org>
151
152         * combine.c (simplify_shift_const): Fix typo.  Use, whenever
153         applicable, simplify_const_binary_operation.
154
155         (simplify_shift_const): Leave only the fallback
156         case when no simplification is possible.  Extract to...
157         (simplify_shift_const_1): ... here.  Always create a new
158         RTX instead of substituting.  Remove the signed_count variable.
159         Return NULL_RTX if no substitution is possible.
160
161         (simplify_and_const_int): Leave only the fallback
162         case when no simplification is possible.  Extract to...
163         (simplify_and_const_int_1): ... here.  Always create a new
164         RTX instead of substituting.  Return NULL_RTX if no substitution
165         is possible.
166
167         (force_to_mode, simplify_comparison): Don't pass a non-NULL first
168         parameter to simplify_and_const_int and simplify_shift_const,
169         unless it is equal to the expected non-simplified result.
170
171 2005-12-23  Jakub Jelinek  <jakub@redhat.com>
172
173         PR target/25005
174         * regrename.c (replace_oldest_value_reg): Use validate_change with
175         IN_GROUP set to 1 instead of doing direct modifications.
176         (copyprop_hardreg_forward_1): Likewise.  If any replace_oldest_*
177         replacements have been performed on an instruction, use
178         apply_change_group ().
179
180 2005-12-23  Hans-Peter Nilsson  <hp@axis.com>
181
182         * config/cris/arit.c (do_31div): Clarify what "31" refers to.
183         [L_divsi3] (__Udiv): Don't use as inline function.
184         [L_modsi3] (__Umod): Ditto.
185         (__Div): Rearrange to call do_31div directly instead of __Udiv.
186         (__Mod): Similarly regarding __Umod.
187
188         PR target/24342
189         * config/cris/cris.c (cris_split_movdx): Add REG_INC notes for
190         emitted insns with post-increments.
191         (cris_expand_epilogue): Ditto.
192
193 2005-12-22  Jakub Jelinek  <jakub@redhat.com>
194             Richard Henderson  <rth@redhat.com>
195
196         Merge from gomp-branch.
197         * builtins.def: Move all DEF_SYNC_BUILTIN to ...
198         * sync-builtins.def: ... new file.
199         (BUILT_IN_FETCH_AND_ADD_16,
200         BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
201         BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
202         BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
203         BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
204         BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
205         BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
206         BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
207         BUILT_IN_LOCK_RELEASE_16): New builtins.
208         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
209         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
210         * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
211         * c-common.c (enum c_builtin_type): Move to top-level from
212         c_common_nodes_and_builtins enum builtin_type.
213         (builtin_types): Move from c_common_nodes_and_builtins.
214         (def_fn_type): New.
215         (c_common_nodes_and_builtins): Use it.
216         (def_builtin_1): Check for error_mark_node.
217         (sync_resolve_size): Handle also 128 bit sync builtins.
218         * Makefile.in (BUILTINS_DEF): New.  Use it instead of builtins.def.
219
220         * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
221         (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
222         * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
223         * config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
224         (doublemodesuffix, DCASHMODE): New mode attrs.
225         (sync_compare_and_swap<mode>): Change into expand, use CASMODE
226         instead of IMODE, if mode is wider than a word, expand into
227         sync_double_compare_and_swap*.
228         (*sync_compare_and_swap<mode>): New insn.
229         (sync_double_compare_and_swap<mode>): Likewise.
230         (*sync_double_compare_and_swapdi_pic): Likewise.
231         (sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
232         mode is wider than a word, expand into
233         sync_double_compare_and_swap_cc*.
234         (sync_double_compare_and_swap_cc<mode>): New insn.
235         (*sync_double_compare_and_swap_ccdi_pic): Likewise.
236
237 2005-12-22  Richard Henderson  <rth@redhat.com>
238
239         * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2.
240         (_mm_sub_si64): Likewise.
241         * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise.
242
243 2005-12-23  Alan Modra  <amodra@bigpond.net.au>
244
245         PR rtl-optimization/25432
246         * reload1.c (eliminate_regs_in_insn): Update insn code on
247         successfully re-recognizing modified insn.
248
249 2005-12-22  Richard Guenther  <rguenther@suse.de>
250
251         * tree.c (tree_fold_gcd): Use build_int_cst where appropriate.
252         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
253         * varasm.c (array_size_for_constructor): Likewise.
254         * fold-const.c (size_diffop, invert_truthvalue,
255         optimize_bit_field_compare, make_range, build_range_check,
256         fold_cond_expr_with_comparison, fold_truthop,
257         fold_single_bit_test_into_sign_test, fold_binary): Likewise.
258
259 2005-12-22  Dale Johannesen  <dalej@apple.com>
260
261         * config/i386/sse.md (sse_movhlps):  Reverse operands for
262         2nd and 3rd alternatives.
263
264 2005-12-22  Andrew Pinski <pinskia@physics.uc.edu>
265
266         PR tree-opt/25513
267         * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
268         variables.
269
270 2005-12-22  Zdenek Dvorak <dvorakz@suse.cz>
271             Steven Bosscher <stevenb@suse.de>
272
273         * df.c (df_bitmaps_free): Only work for bbs for that structures are
274         allocated.
275         (df_bb_modify): Realloc tables to the new index.
276         (df_find_use): New function.
277         (df_find_def, df_reg_used): Handle subregs.
278         * df.h (df_find_use): Declare.
279
280         * loop-invariant.c: Include hashtab.h.
281         (struct invariant): Remove processed field, add eqto and reg fields.
282         (struct invariant_expr_entry): New.
283         (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
284         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
285         find_identical_invariants, merge_identical_invariants): New functions.
286         (create_new_invariant): Return the new invariant.  Initialize new
287         fields.
288         (find_invariants): Call merge_identical_invariants.
289         (get_inv_cost, best_gain_for_invariant, set_move_mark,
290         move_invariant_reg): Handle equivalent invariants.
291         * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
292
293 2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
294
295         PR c++/23333
296         * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
297         number is a single digit '0'.
298
299 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
300
301         PR tree-optimization/23518
302         * fold-const.c (make_range): Don't move a constant to the
303         other side of the comparison if the type is signed and -fwrapv
304         is given.
305
306 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
307
308         * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
309         of vr0.type.
310
311 2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>
312
313         PR middle-end/24998
314         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
315         _floatundisf.
316
317 2005-12-21  Andrew Haley  <aph@redhat.com>
318
319         PR middle-end/25121
320         * recog.c (peephole2_optimize): Don't peephole any
321         RTX_FRAME_RELATED_P insns.
322
323 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
324
325         * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
326         fold_build2 with fold_binary.
327         * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
328         Replace fold_build1 with fold_unary.
329         * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
330         with fold_binary.
331
332 2005-12-21  Steven Bosscher  <stevenb@suse.de>
333
334         PR rtl-optimization/25196
335         * postreload-gcse.c (record_last_set_info): Notice stack pointer
336         changes in push insns without REG_INC notes.
337
338 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
339
340         PR tree-optimization/25382.
341         * tree-vrp.c (extract_range_from_binary_expr): Extract a range
342         from BIT_AND_EXPR.
343
344 2005-12-21  Janis Johnson  <janis187@us.ibm.com>
345             Ben Elliston  <bje@au.ibm.com>
346
347         * configure.ac: Enable C extension for decimal float if invoked
348         with --enable-decimal-float.
349         * doc/install.texi (Configuration): Document it.
350         * configure, config.in: Regenerate.
351
352 2005-12-20  Mike Stump  <mrs@apple.com>
353
354         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
355         ambiguity between -seg_addr_table and -seg_addr_table_filename.
356         (WORD_SWITCH_TAKES_ARG): Likewise.
357         (LINK_SPEC): Likewise.
358
359 2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>
360
361         * cfganal.c (flow_reverse_top_sort_order_compute):
362         Renamed to post_order_compute and additional parameter added which
363         allows the inclusion of entry and exit blocks into list.
364         (mark_dfs_back_edges): Fixed comment.
365         (flow_depth_first_order_compute): Renamed to
366         pre_and_rev_post_order_compute additional parameter added which
367         allows the inclusion of entry and exit blocks into list.
368         * global.c (set_up_bb_rts_numbers): Call to
369         flow_reverse_top_sort_order_compute renamed to
370         post_order_compute.
371         * var-tracking.c (vt_stack_adjustments): Fixed comment.
372         (vt_find_locations): Call to
373         flow_depth_first_order_compute renamed to
374         pre_and_rev_post_order_compute.
375         * cfgloop.c (flow_find_loops): Ditto.
376         * tree-ssa-reassoc.c (init_reassoc): Ditto.
377         * df.c (df_analyze_1, df_analyze_subcfg): Calls to
378         flow_reverse_top_sort_order_compute renamed to post_order_compute
379         and calls to flow_reverse_top_sort_order_compute renamed to
380         post_order_compute.
381         * basic_block.h: Ditto.
382
383
384 2005-12-20  Roger Sayle  <roger@eyesopen.com>
385             Paolo Bonzini  <bonzini@gnu.org>
386
387         PR rtl-optimization/25115
388         * gcse.c (pre_insert_copy_insn): Fall back to the sole
389         SET in the insn if there is no SET for an
390         expression that is equivalent to EXPR.
391
392 2005-12-20  Richard Guenther  <rguenther@suse.de>
393
394         PR middle-end/24306
395         * builtins.c (std_gimplify_va_arg_expr): Do not align
396         va frame for zero sized types.
397         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
398
399 2005-12-20  Kazu Hirata  <kazu@codesourcery.com>
400
401         PR tree-optimization/25501
402         * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
403         used in the PHI argument corresponding to the edge from BB to
404         DEST.
405
406 2005-12-20  Richard Guenther  <rguenther@suse.de>
407
408         Revert
409         2005-12-02  Richard Guenther  <rguenther@suse.de>
410
411         * tree-cfg.c (mark_used_vars): New function.
412         (dump_function_to_file): Dump only used VAR_DECLs.
413
414 2005-12-19  Roger Sayle  <roger@eyesopen.com>
415
416         * combine.c (try_combine): Improve splitting of binary operators
417         by taking advantage of reassociative transformations.
418
419 2005-12-19  Jeff Law  <law@redhat.com>
420
421         * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
422         Strip away all type conversions after simplifying the
423         condition.
424
425         * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
426         cases the forwarder block dominates the destination.
427
428 2005-12-19  DJ Delorie  <dj@redhat.com>
429
430         * reload1.c (spill_failure): Dump reload data to dump file.
431         (find_reload_regs): Likewise.
432
433 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
434
435         PR tree-optimization/24793
436         * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
437         original reference if there are subvars.
438         * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
439
440 2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>
441
442         * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
443         Corrected basic block number calculations for changes in entry and
444         exit numbering.
445         
446 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
447
448         * tree-flow.h (struct var_ann_d): Change type of
449         may_aliases field to VEC(tree, gc) *.
450         (may_aliases): Declaration changed.
451         * tree-ssa-alias.c (group_aliases, add_may_alias,
452         replace_may_alias, dump_may_aliases_for,
453         is_aliased_with, add_type_alias, new_type_alias):
454         Work with VEC(tree, gc) * instead of varray.
455         * tree-flow-inline.h (may_aliases): Ditto.
456         * tree-ssa.c (verify_flow_insensitive_alias_info,
457         verify_name_tags): Ditto.
458         * tree-ssa-operands.c (add_stmt_operand): Ditto.
459
460 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
461
462         * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
463         comes back.
464
465 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
466
467         * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
468         check.
469
470 2005-12-19  Ben Elliston  <bje@au.ibm.com>
471
472         * doc/install.texi (Configuration): Typo in Fortran subheading.
473
474 2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>
475
476         * config/mt/mt.md (decrement_and_branch_until_zero): Add another
477         scratch.  Correct its reload split. Adjust its peephole.
478         (doloop_end): Add additional scratch.
479         (nop): Use 'nop'.
480         * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
481         (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
482         (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
483         (mt_builtin_saveregs): Replace with ...
484         (mt_setup_incoming_varargs): ... here.  Save just the varadic
485         args.
486         (mt_va_start): Remove.
487         (mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
488         (mt_machine_reorg): Split all insns here.
489         (TARGET_SETUP_INCOMING_VARARGS): Override.
490         * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
491         Set to CPU type.
492         (EXPAND_BUILTIN_VA_START): Remove.
493
494 2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
495
496         * flow.c (update_life_info, count_or_remove_death_notes): Fixed
497         latent bug that could happen if update_life_info was called with a
498         blocks parameter and the call to cleanup_cfg actually deleted one
499         of those blocks. 
500
501 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
502
503         * tree-ssa-structalias.c (update_alias_info): Remove handling
504         of may_be_aliased (SSA_NAME_VAR (op)) case.
505
506 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
507
508         * tree-flow.h (struct stmt_ann_d): Remove
509         makes_aliased_loads and makes_aliased_stores fields.
510         * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
511         and makes_aliased_loads fields.
512         * tree-ssa-dom.c (eliminate_redundant_computations): Do not
513         use makes_aliased_stores.
514         * tree-ssa-operands.c (clobbered_aliased_loads,
515         clobbered_aliased_stores, ro_call_aliased_loads): Removed.
516         (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
517         add_call_read_ops): Do not set makes_aliased_stores and
518         makes_aliased_loads fields.
519         * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
520         field.
521
522 2005-12-18  Geoffrey Keating  <geoffk@apple.com>
523
524         * config/darwin.h: Don't include darwin-sections.def to declare
525         global variables; instead create darwin_section_enum.
526         (darwin_section_enum): New.
527         (darwin_sections): New.
528         * config/darwin.c: Don't include darwin-sections.def to define
529         global variables.
530         (darwin_sections): New.
531         (output_objc_section_asm_op): Rewrite to take advantage of
532         darwin_sections.
533         (darwin_init_sections): Rewrite to use darwin_sections.
534         (machopic_output_indirection): Update for darwin_sections array.
535         (machopic_select_section): Likewise.
536         (machopic_select_rtx_section): Likewise.
537         (machopic_asm_out_constructor): Likewise.
538         (machopic_asm_out_destructor): Likewise.
539         (darwin_file_end): Likewise.
540         * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
541         * config/i386/i386.c (machopic_output_stub): Likewise.
542
543 2005-12-18  Richard Guenther  <rguenther@suse.de>
544
545         PR tree-optimization/25481
546         * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
547         don't have a varinfo for.
548
549 2005-12-18  Jon Grimm  <jgrimm2@us.ibm.com>
550             Janis Johnson  <janis187@us.ibm.com>
551             Ben Elliston  <bje@au.ibm.com>
552
553         * optabs.c (init_floating_libfuncs): Handle decimal float modes.
554         (init_optabs): Handle libfuncs for decimal float.
555         * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
556         * stor-layout.c (int_mode_for_mode): Likewise.
557         * simplify-rtx.c (simplify_immed_subreg): Likewise.
558         (simplify_unary_operation_1): Skip optimisations for decimal float
559         modes.
560         * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
561         * emit-rtl.c (gen_const_vector): Add assertion check.
562         (init_emit_once): Populate const_tiny_rtx with constants in each
563         decimal float mode.
564         * expmed.c (extract_high_half, expand_mult_highpart_optab,
565         expand_mult_highpart): Assert that mode is not a scalar float
566         mode.
567         * expr.c (convert_move): Handle conversion between decimal and
568         binary floats of the same size.
569         * convert.c (convert_to_real): Consider decimal float types when
570         folding.
571         * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
572         describe decimal floating point types.
573         
574 2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
575
576         PR rtl-optimization/21041
577         * reload.c (find_reloads_subreg_address): Replace paradoxical
578         subreg of MEM by widened access only if the resulting memory
579         is properly aligned, even on !STRICT_ALIGNMENT targets.
580
581 2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
582
583         * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
584
585 2005-12-18  Steven Bosscher  <stevenb@suse.de>
586
587         * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
588         the 2005-12-17 patch to renumber the entry and exit blocks.
589
590 2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
591
592         * doc/objc.texi (Type encoding): Fix typo.
593
594 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
595
596         * tree-tailcall.c (find_tail_calls): Use XNEW.
597         * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
598         (free_all_edge_infos): Use explicit cast to convert from void *.
599         (vrp_free): Likewise.
600         (dom_opt_finalize_block): Likewise.
601         (record_equivalences_from_incoming_edge): Likewise.
602         (thread_across_edge): Likewise.  Use XCNEWVEC.
603         (record_cond): Use XCNEW.
604         (record_conditions): Use XNEWVEC.
605         (record_edge_info): Use XCNEWVEC.
606         (lookup_avail_expr): Use XNEW.
607         (record_range): Likewise.  Use GGC_NEW.
608         * tree-nested.c (var_map_hash): Use explicit cast to convert from
609         void *.
610         (var_map_eq): Likewise.
611         (lookup_field_for_decl): Likewise.
612         (convert_nonlocal_reference): Likewise.
613         (convert_local_reference): Likewise.
614         (convert_nl_goto_reference): Likewise.
615         (convert_nl_goto_receiver): Likewise.
616         (convert_call_expr): Likewise.
617         (convert_tramp_reference): Likewise.
618         (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
619         (convert_nl_goto_reference): Likewise.
620         (lookup_field_for_decl): Use GGC_NEW.
621         (create_nesting_tree): Use GGC_CNEW.
622         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
623         * tree-ssa-alias.c (init_alias_info): Use XCNEW.
624         (create_alias_map_for): Likewise.
625         (setup_pointers_and_addressables): Use XCNEWVEC.
626         (get_ptr_info): Use GGC_NEW.
627         (used_part_map_eq): Use explicit cast to convert from void *.
628         (up_lookup): Likewise.
629         (up_insert): Use XNEW.
630         (get_or_create_used_part_for): Use XCNEW.
631         (get_tmt_for): Likewise.
632         * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
633         * tree-ssa-pre.c (phi_trans_add): Use XNEW.
634         (bitmap_set_new): Use explicit cast to convert from void *.
635         (set_new): Likewise.
636         (insert_into_set): Likewise.
637         (pool_copy_list): Likewise.
638         (phi_translate): Likewise.
639         (create_value_expr_from): Likewise.
640         (insert_aux): Use XCNEWVEC.
641         (compute_avail): Use XNEWVEC.
642         * tree-ssa-live.c (calculate_live_on_entry): Likewise.
643         (sort_coalesce_list): Likewise.
644         (build_tree_conflict_graph): Use XCNEWVEC.
645         * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
646         * tree-ssa-copy.c (init_copy_prop): Likewise.
647         (fini_copy_prop): Likewise.
648         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
649         and XCNEWVEC.
650         (record_equiv): Use XNEW.
651         (uncprop_into_successor_phis): Use explicit cast to convert from
652         void *.
653         (uncprop_initialize_block): Likewise.
654
655 2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>
656
657         PR tree-optimization/24378      
658         * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
659         basic-block after loop-versioning. 
660
661 2005-12-18  Jeff Law  <law@redhat.com>
662
663         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
664         to simplify SWITCH_EXPR_CODE moved from here to ...
665         * tree-ssa-forwprop.c (simplify_switch_expr): Here.
666         (tree-ssa-forward_propagate_single_use_vars): Call
667         simplify_switch_expr when appropriate.
668
669 2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>
670
671         * doc/objc.texi (Type encoding): Add documentation about encoding
672         complex types and _Bool.
673
674 2005-12-17  Paul Brook  <paul@codesourcery.com>
675
676         * config/m68k/m68k.md (m68k_output_function_prologue): Always call
677         dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
678         when frame_pointer_needed. 
679
680 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
681
682         * tree-vn.c (vn_add): Use XNEW.
683         * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
684         (ccp_fold): Likewise.
685         (fold_stmt_r): Use explicit cast to convert from void *.
686         * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
687         (new_temp_expr_table): Likewise.
688         * gimplify.c (lookup_tmp_var): Use XNEW.
689         (gimplify_asm_expr): Use explcit cast to convert from void *.
690         * tree-into-ssa.c (get_ssa_name_ann): Likewise.
691         (get_def_blocks_for): Use XNEW.
692         (add_to_repl_tbl): Likewise.
693         (mark_def_sites): Use explicit cast to convert from void *.
694         (def_blocks_free): Likewise.
695         (mark_def_sites_initialize_block): Likewise.
696         (update_ssa): Use XNEWVEC.
697         * tree-dfa.c (create_var_ann): Use GGC_NEW.
698         (create_stmt_ann): Likewise.
699         (create_tree_ann): Likewise.
700         (referenced_var_insert): Likewise.
701         (set_default_def): Likewise.
702         (referenced_var_lookup_if_exists): Use explicit cast to convert
703         from void *.
704         (referenced_var_lookup): Likewise.
705         (default_def): Likewise.
706         (set_default_def): Likewise.
707         * tree-cfg.c (create_bb): Likewise.
708         (edge_to_cases_cleanup): Likewise.
709         (verify_node_sharing): Likewise.
710         (record_switch_edge): Use XNEW.
711         (cleanup_dead_labels): Use XCNEWVEC.
712         (tree_duplicate_sese_region): Use XNEWVEC.
713         * tree-scalar-evolution.c (get_instantiated_value): Likewise.
714         * tree-ssa.c (verify_ssa): Use XCNEWVEC.
715         (int_tree_map_eq): Use explicit cast to convert from void *.
716         * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
717         (__gcov_execl): Likewise.
718         (__gcov_execlp): Likewise.
719         (__gcov_execle): Likewise.
720         * tree-eh.c (struct_ptr_eq): Likewise.
721         (struct_ptr_hash): Likewise.
722         (lookup_stmt_eh_region_fn): Likewise.
723         (outside_finally_tree): Likewise.
724         (find_goto_replacement): Likewise.
725         (make_eh_edge): Likewise.
726         (mark_eh_edge): Likewise.
727         (add_stmt_to_eh_region_fn): Use GGC_NEW.
728         (record_in_finally_tree): Use XNEW.
729         (maybe_record_in_goto_queue): Use XRESIZEVEC.
730         (lower_try_finally_copy): Use XCNEWVEC.
731
732 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
733
734         * tree-inline.c (copy_body_r): Use explicit cast when converting
735         from void *.
736         (copy_bb): Likewise.
737         (copy_edges_for_bb): Likewise.
738         (remap_decl_1): Likewise.
739         (estimate_num_insns_1): Likewise.
740         * cgraph.c (hash_node): Use explicit cast when converting from
741         void *.
742         (eq_node): Likewise.
743         (cgraph_create_node): Use GGC_CNEW.
744         (cgraph_create_edge): Use GGC_NEW.
745         (cgraph_remove_node): Use explicit cast when converting from void *.
746         (hash_varpool_node): Likewise.
747         (eq_varpool_node): Likewise.
748         (cgraph_varpool_node): Use GGC_CNEW.
749         * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
750         * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
751         (eq_scev_info): Use explicit cast when converting from void *.
752         (find_var_scev_info): Likewise.
753         (set_instantiated_value): Likewise.
754         (gather_stats_on_scev_database_1): Likewise.
755         * cfgloop.h (simple_loop_desc): Use explicit cast when converting
756         from void *.
757         * c-pch.c (c_common_write_pch): Use XNEWVEC.
758         (c_common_read_pch): Likewise.
759         * prefix.c (save_string): Use XNEWVEC.
760         (translate_name): Use explicit cast when converting from void *.
761         * c-ppoutput.c (print_line): Use explicit cast when converting
762         from void *.
763         (pp_dir_change): Likewise.
764         * c-cppbuiltin.c (builtin_define_std): Likewise.
765         (builtin_define_with_value): Likewise.
766         (builtin_define_with_value_n): Likewise.
767         (builtin_define_with_int_value): Likewise.
768         (builtin_define_type_max): Likewise.
769         * c-incpath.c (add_env_var_paths): Use XNEWVEC.
770         (add_path): Use XNEW.
771         * c-format.c (check_format_info_main): Use GGC_NEW.
772         (format_type_warning): Use explicit cast when converting from void *.
773         * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
774         xmalloc. 
775         (start_init): Likewise.
776         * tree-flow-inline.h (first_referenced_var): Use explicit cast
777         when converting from void *.
778         (next_referenced_var): Likewise.
779         * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
780         * gensupport.c (lookup_predicate): Use explicit cast to convert
781         from void *.
782         (init_predicate_table): Use XCNEW instead of xcalloc.
783         * genpreds.c (process_define_predicate): Likewise.
784
785 2005-12-17  Danny Berlin <dberlin@dberlin.org>
786             Kenneth Zadeck <zadeck@naturalbridge.com>
787
788         * basic-block.h: Changed basic block numbering so that the entry
789         block is 0 and the exit block is 1.  Changed insn iterators so
790         that they are tolerant of blocks with no insns.
791         * regrename.c (copyprop_hardreg_forward): Changed basic block
792         numbering so that the entry block is 0 and the exit block is 1.
793         * sched-ebb.c (sehedule_ebbs): Ditto.
794         * tracer.c (branch_ratio_cutoff): Ditto.
795         * cfgloopmanip.c (fix_loop_structure): Ditto.
796         * cfghooks.c (verify_flow_info): Ditto.
797         * cfg.c (compact_blocks): Ditto.
798         * reorg.c (dbr_schedule): Ditto.
799         * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
800         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
801         calculate_dominance_info): Ditto.
802         * cfganal.c (create_edge_list, print_edge_list,
803         flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
804         flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
805         dfs_enumerate_from): Ditto.
806         * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
807         * ifcvt.c (find_if_case_2): Ditto.
808         * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
809         find_basic_blocks): Ditto.
810         * predict.c (predict_loops, tree_bb_level_predictions,
811         predict_paths_leading_to, propagate_freq): Ditto.
812         * lcm.c (compute_antinout_edge, compute_laterin,
813         compute_available): Ditto.
814         * function.c (thread_prologue_and_epilogue_insns): Ditto.
815         * gcse.c (gcse_main, bypass_jumps): Ditto.
816         * profile.c (compute_branch_probabilities,
817         compute_value_histograms, branch_prob): Ditto.
818         * tree-flow-inline.h (bsi_start, bsi_after_labels,
819         bsi_last): Ditto.
820         * tree-ssa-phiopt.c (tree_ssa_phiopt,
821         blocks_in_phiopt_order): Ditto.
822         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
823         compute_out, link_btr_uses, migrate_btr_defs): Ditto.
824         * tree-dfa.c (collect_dfa_stats): Ditto.
825         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
826         * cfglayout.c (fixup_reorder_chain): Ditto.
827         * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
828         partition_hot_cold_basic_blocks): Ditto.
829         * var-tracking.c (vt_find_locations): Ditto.
830         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
831         * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
832         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
833         label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
834         * tree-ssa-reassoc.c (init_reassoc): Ditto.
835         * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
836         rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
837         * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
838         and removed unused reverse orders.
839         * df.h (): Ditto.
840         * combine.c: Fix document typo.
841
842 2005-12-17  Jan Hubicka  <jh@suse.cz>
843
844         * tree-flow-inline.h (set_default_def, default_def): Kill.
845         * tree-dfa.c (default_defs): New global variable.
846         (default_def, set_default_def): New functions.
847         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
848         * tree-flow.h (struct var_ann_d): Kill default_def field.
849         (set_default_def, default_def): Update prototype.
850         (default_defs): Declare.
851
852 2005-12-16  Jeff Law  <law@redhat.com>
853
854         * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
855         (simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
856         into tree-ssa-forwprop.c.
857         (eliminate_redundant_computations): Do not call
858         simplify_rhs_and_lookup_avail_expr anymore.
859         * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
860         extracted from remnants of simplify_rhs_and_lookup_avail_expr.
861         (tree_ssa_forward_propagate_single_use_vars): Call
862         simplify_not_neg_expr appropriately.
863
864 2005-12-16  Bernd Trog  <berndtrog@yahoo.com>
865
866         PR target/20016
867         * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
868
869 2005-12-17  Kazu Hirata  <kazu@codesourcery.com>
870
871         PR rtl-optimization/25456
872         * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
873         info->x_start with p->x_start.
874
875 2005-12-17  Alan Modra  <amodra@bigpond.net.au>
876
877         * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
878         introduced 2005-12-16.
879
880 2005-12-16  Steven Bosscher  <stevenb@suse.de>
881
882         PR rtl-optimization/23837
883         * optabs.c (expand_binop): For a multi-word rotate, never emit
884         a REG_NO_CONFLICT block.
885
886 2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
887
888         PR middle-end/25457
889         * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
890
891         PR target/25447
892         * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
893         MODE_DECIMAL_FLOAT.
894
895 2005-12-16  Steven Bosscher  <stevenb@suse.de>
896
897         * loop-invariant.c (move_loop_invariants): Add missing hunk from
898         the previous patch, to nullify df.
899
900 2005-12-16  Steven Bosscher  <stevenb@suse.de>
901
902         * reorg.c (mostly_true_jump): Clean up code depending on
903         LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
904         poor man's branch prediction, instead rely on REG_BR_PROB
905         notes to be available.
906
907 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
908
909         PR rtl-optimization/24899
910         * loop.c (strength_reduce): Don't reduce giv that is not always
911         computable and where add_val or mult_val can trap.
912
913         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
914
915 2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
916
917         * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
918         names of ms1-16-002 files.
919
920 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
921
922         PR driver/20425
923         * gcc.c (for_each_path): New function.
924         (add_to_obstack, file_at_path): New functions.
925         (struct file_at_path_info, struct add_to_obstack_info): New.
926         (build_search_list): Rewrite using for_each_path.  Constify struct
927         path_prefix pointer.  Add do_multi param.  Adjust all callers.
928         (find_a_file): Similarly, but just change existing param to bool.
929         (putenv_from_prefixes): Add do_multi param, make "paths" const.
930         (do_spec_path): Delete.
931         (struct spec_path_info): New.
932         (spec_path): New function.
933         (do_spec_1): Use for_each_path for %D and %I.
934         (find_file): Adjust for find_a_file changes.
935         (main): Search multilibs for specs.  Print multilib lib path for
936         -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
937         (read_specs): Search multilibs for %include and %include_noerr.
938         (is_directory): Remove second string param.  Change last param
939         to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
940         check path is a dir.  Update all callers.
941         * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
942         * system.h (SMALL_ARG_MAX): Poison.
943         * config.gcc: Don't define SMALL_ARG_MAX.
944         * config.host: Likewise.
945         * config.build: Likewise.
946
947 2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
948
949         * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
950         FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
951         ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
952         simplify_logical): Move simplifications that do not require
953         additional infrastructure...
954         * simplify-rtx.c (simplify_unary_operation_1,
955         simplify_binary_operation_1): ... here.
956
957 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
958
959         PR 24823
960         * flow.c (mark_used_dest_regs): New function.
961         (mark_used_regs): Call mark_used_dest_regs.
962
963 2005-12-16  Jeff Law  <law@redhat.com>
964
965         * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
966         represent a use and definition of the same SSA_NAME.
967
968 2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
969             Janis Johnson  <janis187@us.ibm.com>
970             Ben Elliston  <bje@au.ibm.com>
971
972         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
973         (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
974         * target.h (struct gcc_target): Add decimal_float_supported_p.
975         * targhooks.c (default_scalar_mode_supported_p): Handle
976         MODE_DECIMAL_FLOAT.
977         * builtins.def: Add new builtins for 32, 64 and 128 bit variants
978         of inf, nan, finite, isinf and isnan.
979         * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
980         BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
981         BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
982         BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
983         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
984         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
985         BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
986         * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
987         Pedwarn if decimal floating point types are used.  Error if
988         decimal floating point is not supported by the target.
989         (finish_declspecs): Return type from DFP typespec_word.
990         * c-typeck.c (c_common_type): Choose the decimal floating point
991         type with the greater precision when determining a common type.
992         (convert_arguments): Warn if there is a mismatch between argument
993         and prototype for decimal float types.  Warn of conversions with
994         binary float types and of precision narrowing due to prototype.
995         * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
996         (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
997         (c_token_starts_declspecs): Likewise.
998         (c_parser_attributes): Likewise.
999         * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
1000         RID_DFLOAT64, RID_DFLOAT128.
1001         (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
1002         * c-common.c (c_common_type_for_mode): Handle decimal float modes.
1003         (shorten_compare): Convert DFP/BFP operands to a common type.
1004         (c_common_modes_and_builtins): Register built-in decimal float
1005         types if the target supports them.
1006         (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
1007         * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
1008         inf, nan, finite, isinf and isnan builtins.
1009         * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
1010         (builtin_define_float_constants): Assert non-decimal radix.
1011         (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
1012         Call builtin_define_decimal_float_constants for each type.
1013         * c-lex.c (interpret_float): Decode decimal float types from CPP_N
1014         flags.  Use real_from_string3, which can handle binary or decimal
1015         floats.
1016         * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
1017         cts_dfloat64, cts_dfloat128.
1018         * tree.c (build_common_tree_nodes_2): Add decimal float types.
1019         * tree.h (enum tree_index): Add new enumeration values
1020         TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
1021         TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
1022         (dfloat32_type_node): New macro.
1023         (dfloat64_type_node, dfloat128_type_node): Likewise.
1024         (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
1025         (dfloat128_ptr_type_node): Likewise.
1026         * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
1027         bit decimal floating point types with "df", "dd" and "dl".
1028         * c-format.h (enum format_lengths): Add new enumeration values
1029         FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
1030         * c-format.c (printf_length_specs, scanf_length_specs): Add
1031         entries for H, D, DD.
1032         (print_char_table, scan_char_table): Use new entries.
1033         (asm_fprintf_char_table, gcc_diag_char_table,
1034         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
1035         length arrays.
1036         * defaults.h (DECIMAL32_TYPE_SIZE): Define.
1037         (DECIMAL64_TYPE_SIZE): Likewise.
1038         (DECIMAL128_TYPE_SIZE): Likewise.
1039         (TARGET_DEC_EVAL_METHOD): Likewise.
1040         * doc/extend.texi (Decimal Float): New node.
1041         (Constructing Calls): Document decimal float built-ins.
1042         * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
1043         * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
1044         * ginclude/decfloat.h: New file.
1045
1046 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
1047
1048         * reload.c (find_reloads): Fix comment typo.
1049         * recog.h (recog_memoized): Correct comment.
1050
1051 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
1052
1053         * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
1054         config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
1055         reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
1056         tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
1057         * doc/invoke.texi, doc/tm.texi: Fix typos.
1058
1059 2005-12-16  Ben Elliston  <bje@au.ibm.com>
1060
1061         * real.c (decimal_quad_format): Correct values for emin, emax.
1062
1063 2005-12-15  DJ Delorie  <dj@redhat.com>
1064
1065         * config/m32c/predicates.md (m32c_psi_scale): New.
1066         * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
1067         * config/m32c/muldiv.md (mulpsi3): Support negative constants.
1068
1069 2005-12-16  Jan Hubicka  <jh@suse.cz>
1070
1071         PR rtl-optimization/25224
1072         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
1073         tables.
1074
1075 2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
1076             Steven Bosscher <stevenb@suse.de>
1077
1078         * loop-invariant.c (df): New global variable.
1079         (find_defs, check_dependencies, find_invariant_insn, record_uses,
1080         find_invariants_bb, find_invariants_body, find_invariants,
1081         find_invariants_to_move, move_invariants, free_inv_motion_data,
1082         move_single_loop_invariants, move_loop_invariants): Do not pass df in
1083         arguments.
1084
1085 2005-12-15  Jakub Jelinek  <jakub@redhat.com>
1086
1087         * varasm.c (default_unique_section_1): Use special section
1088         names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
1089
1090 2005-12-16  Ben Elliston  <bje@au.ibm.com>
1091
1092         * doc/invoke.texi (Warning Options): Document -Walways-true being
1093         enabled by -Wall.
1094
1095 2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
1096
1097         PR other/25028
1098         * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
1099         * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
1100         __floatunditf): Use #error if type sizes don't match requirements
1101         of implementation.
1102         (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
1103         as wider floating-point type.  Use #error if type sizes don't
1104         match requirements of implementation.  Avoid overflow in computing
1105         Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
1106         shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
1107         (__floatundisf, __floatundidf): Likewise.
1108         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
1109         * config/ia64/ia64.c (ia64_init_libfuncs): Use
1110         _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
1111         TFmode-TImode conversions.
1112         * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
1113
1114 2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1115
1116         * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
1117         Use builtin_define_with_int_value() instead of
1118         adding a new check for every new major FreeBSD version.
1119
1120 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
1121
1122         * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
1123
1124 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
1125
1126         * config/arm/predicates.md (call_memory_operand): New.
1127         * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
1128
1129 2005-12-15  Andrew Haley  <aph@redhat.com>
1130
1131         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
1132         against prev_cache_entry == NULL when moving a cache entry to the
1133         head of the list.
1134         
1135 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
1136
1137         * config/mt/mt.c (mt_override_options): Require lower case
1138         architectures.  Revert accidental default to ms2.
1139         * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
1140         ENDFILE_SPEC): Require lower case architectures.  Revert default
1141         to ms2.
1142
1143         * doc/invoke.texi (MT Options): Rename and update.
1144         * doc/md.texi (MorphoTech family): Rename and update.
1145
1146 2005-12-15  Olivier Hainque  <hainque@adacore.com>
1147
1148         * stor-layout.c (layout_type): Don't complain about a too small
1149         an array element type size compared to its alignment when the
1150         size overflows.
1151
1152 2005-12-15  Jan Hubicka  <jh@suse.cz>
1153
1154         PR target/24969
1155         * i386.c (classify_argument): Properly adjust offset of bitfield for
1156         substructures.
1157
1158 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
1159
1160         * final.c (final_scan_insn): Flip in_cold_section_p when changing
1161         between the hot and cold sections.  Use current_function_section
1162         to get the new section.
1163         * dwarf2out.c (output_line_info): Use in_cold_section_p to
1164         determine whether we are assembling hot or cold code.
1165         (secname_for_decl, dwarf2out_var_location): Likewise.
1166         (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
1167         * varasm.c (last_text_section): Delete.
1168         (in_cold_section_p): New variable.
1169         (hot_function_section): New function.
1170         (current_function_section): Pass in_cold_section_p as the
1171         reloc argument to select_section.  Use it to decide between
1172         unlikely_function_section and hot_function_section.
1173         (assemble_start_function): Use switch_to_section.  Set
1174         in_cold_section_p instead of last_text_section.
1175         (assemble_end_function): Use switch_to_section.
1176         (switch_to_section): Don't set last_text_section.
1177         * config/darwin/darwin.c (machopic_select_section): Trust the reloc
1178         argument to make the right choice between hot and cold sections.
1179
1180 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
1181
1182         Second part of MS1->MT renaming
1183         * config/mt/mt.md (doloop_end): Call mt_add_loop.
1184         (movqi, movhi): Call mt_set_memflags.
1185         (*movdf_internal): Call mt_split_words. 
1186         (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
1187         mt_set_memflags.
1188         (cmpsi): Store to mt_compare_op[01].
1189         (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
1190         bungt, bunle, bunlt): Call mt_emit_cbranch.
1191         (prologue): Call mt_expand_prologue.
1192         (epilogu): Call mt_expend_epilogue.
1193         (eh_return): Call mt_expand_eh_return.
1194         (eh_epilogue): Call me_emit_eh_epilogue.
1195         (conditional_trap): Store to mt_compare_op[01].
1196         * config/mt/crti.asm: Adjust comment.
1197         * config/mt/crtn.asm: Adjust comment.
1198         * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
1199         (mt_compare_op0, mt_compare_op1): Renamed.
1200         (current_frame_info, zero_frame_info): Adjust type.
1201         (mt_ucmpsi3_libcall): Renamed.
1202         (mt_flag_delayed_branch): Renamed.
1203         (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
1204         (mt_nops_required, mt_nop_reasons): Renamed.
1205         (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
1206         mt_debug_stack, mt_print_operand_simple_address,
1207         mt_print_operand_address, mt_print_operand): Renamed, adjusted.
1208         (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
1209         mt_function_arg_advance, mt_arg_partial_bytes,
1210         mt_pass_by_reference, mt_function_arg_boundary,
1211         mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
1212         mt_legitimate_address_p): Renamed, adjusted.
1213         (mt_cpu): Renamed.
1214         (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
1215         mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
1216         mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
1217         mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
1218         mt_expand_eh_return, mt_emit_eh_prologue,
1219         mt_handl_interrupt_attribute): Renamed, adjusted.
1220         (mt_attribute_table): Renamed, adjusted.
1221         (mt_initial_elimination_offset, mt_generate_compare,
1222         mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
1223         mt_secondary_reload_class, mt_function_value, mt_split_words,
1224         mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
1225         mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
1226         (mt_labels): Renamed.
1227         (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
1228         mt_machine_reorg): Renamed, adjusted.
1229         (mt_attribute_table: Renamed.
1230         (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
1231         TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
1232         TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
1233         * config/mt/mt.opt (march): Set mt_cpu_string.
1234         * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
1235         (TARGET_CPU_CPP_BUILTINS): Adjust.
1236         (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
1237         TARGET_MS2): Adjust.
1238         (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
1239         (MT_MIN_INT): Renamed.
1240         (RETURN_ADDR_RTX): Adjust.
1241         (struct mt_frame_info): Renamed.
1242         (current_frame_info): Adjust type.
1243         (INITIAL_ELIMINATION_OFFSET): Adjust.
1244         (MT_NUM_ARG_REGS): Renamed.
1245         (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
1246         FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
1247         LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
1248         GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
1249         FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
1250         (mt_compare_op0, mt_compare_op1): Renamed.
1251         * config/mt/mt-protos.h: Rename prototypes.
1252
1253 2005-12-15  Richard Guenther  <rguenther@suse.de>
1254
1255         * tree-flow.h (okay_component_ref_for_subvars): Remove.
1256         (get_ref_base_and_extent): Declare.
1257         * tree-dfa.c (okay_component_ref_for_subvars): Remove.
1258         (get_ref_base_and_extent): New function.
1259         * tree-ssa-alias.c (find_used_portions): Use it.
1260         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1261         Likewise.
1262         * tree-ssa-operands.c (get_expr_operands): Likewise.
1263
1264 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
1265
1266         * combine.c: Remove force_to_mode's fourth parameter.
1267         (force_to_mode): Do not handle REG.
1268         (canon_reg_for_combine): New.
1269         (make_field_assignment): Use it where the removed argument was non-NULL.
1270
1271 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
1272
1273         PR target/25406
1274         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
1275         error_mark_node.  Make alignment params unsigned.
1276         * config/rs6000/rs6000-protos.h
1277         (rs6000_special_round_type_align): Update prototype.
1278         (rs6000_machopic_legitimize_pic_address): Remove arg names.
1279
1280 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
1281
1282         PR rtl-optimization/25310
1283         * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
1284         of the eliminable register when substituting into a PLUS.
1285
1286 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1287
1288         PR debug/25023
1289         * config/i386/i386.c (ix86_force_to_memory): Always use
1290         SImode push for HImode in -m32.
1291         (ix86_free_from_memory): Likewise.
1292
1293 2005-12-14  Richard Sandiford  <richard@codesourcery.com>
1294
1295         * gcc/config/arm/arm.md: Provide a big-endian version of the
1296         (zero_extend:SI (subreg:QI ...)) splitter.
1297
1298 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1299
1300         * struct-equiv.c (note_local_live): Handle hard regs with different
1301         hard_regno_nregs.
1302
1303 2005-12-14  Jeff Law  <law@redhat.com>
1304
1305         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
1306         to a structure containing state rather than a pointer to bool.
1307         (case ARRAY_REF): New code to handle folding some array references.
1308         (case ADDR_EXPR): Note when we are processing expressions found
1309         within an ADDRE_EXPR.
1310         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
1311         for state variables rather than just a pointer to a boolean.
1312         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1313         handling of constant string references.
1314
1315 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1316
1317         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
1318         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
1319         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
1320         Move other tst* patterns to retain partial order.
1321
1322 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1323
1324         * config/s390/s390.md ("d0", "1"): New mode attributes.
1325         ("<shift>di3", "<shift>si3"): Merge.
1326         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
1327         ("ashrdi3", "ashrsi3"): Merge.
1328         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
1329         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
1330         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
1331         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
1332         ("*ashrdi3", "*ashrsi3"): Merge.
1333         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
1334
1335 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1336
1337         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
1338         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
1339         ("*extendqidi2", "*extendqisi2") Merge.
1340         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
1341         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1342         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
1343         Move some patterns to retain partial ordering.
1344
1345 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1346
1347         * config/s390/s390.md ("atype", "length"): Rewrite.
1348         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
1349
1350 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1351
1352         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
1353
1354 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1355
1356         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
1357         PARALLELs with a mode.
1358
1359 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1360
1361         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1362         cond_expr parameter.
1363
1364 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1365
1366         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1367
1368 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1369
1370         PR bootstrap/25397:
1371
1372         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1373         of STACK_REGS bits.
1374
1375         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1376
1377 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1378
1379         PR target/25254
1380         PR target/24188
1381         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1382         DECL_P, call get_section rather than get_named_section.  Supply
1383         section flags to it.
1384
1385 2005-12-14  Ben Elliston  <bje@au.ibm.com>
1386
1387         * c-common.c (c_common_truthvalue_conversion): Generalise warning
1388         for addresses converted to booleans; not just function addresses.
1389         * c-typeck.c (build_binary_op): Warn for address comparisons which
1390         can never be NULL (eg. func == NULL or &var == NULL).
1391         * common.opt (Walways-true): New option.
1392         * c-opts.c (c_common_handle_option): Set it with -Wall.
1393         * doc/invoke.texi: Document it.
1394
1395 2005-12-13  Paul Brook  <paul@codesourcery.com>
1396
1397         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1398         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1399
1400 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1401
1402         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1403         (EXTRA_MULTILIB_PARTS): Define.
1404
1405 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1406
1407         PR rtl-optimization/20070 / part1
1408         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1409         count_or_remove_death_notes with kill == -1.
1410         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1411         registers if PROP_POST_REGSTACK is set.
1412         (mark_used_reg): Likewise.
1413         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1414         REG_UNUSED notes for stack regs.
1415         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1416         to match rtx_equiv_p machinery.  Change caller.
1417         (outgoing_edges_match): Likewise.
1418         (try_crossjump_to_edge): Use struct_equiv_block_eq
1419         instead of flow_find_cross_jump.
1420         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1421         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1422         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1423         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1424         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1425         (insns_match_p): Update prototype.
1426         (flow_find_cross_jump): Remove prototype.
1427         (struct_equiv_block_eq, struct_equiv_init): Declare.
1428         (rtx_equiv_p, condjump_equiv_p): Likewise.
1429         * struct-equiv.c: Include reload.h.
1430         (IMPOSSIBLE_MOVE_FACTOR): Define.
1431         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1432         (struct_equiv_improve_checkpoint): Likewise.
1433         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1434         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1435         (struct_equiv_merge, find_dying_input): Likewise.
1436         (resolve_input_conflict, note_local_live): Likewise.
1437         (death_notes_match_p): Change parameters and processing
1438         to match rtx_equiv_p machinery.  Change caller.
1439         (insns_match_p): Likewise.
1440         (flow_find_cross_jump): Replace with:
1441         (struct_equiv_block_eq).
1442
1443         Back out this change:
1444         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1445           * recog.c (verify_changes): Make it static.
1446           * recog.h: Remove the corresponding prototype.
1447
1448 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1449
1450         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1451         values.
1452
1453 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1454
1455         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1456         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
1457         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1458         TARGET_MS1_64_001 appropriately.
1459         (ms1_machine_reorg): Use TARGET_MS2.
1460
1461 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
1462
1463         PR debug/25023
1464         PR target/25293
1465         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1466         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1467         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1468         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1469         Set mode to SI, adjust constraints.
1470         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1471         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1472         32-bit code.
1473
1474 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
1475
1476         * c-cppbuiltin.c (builtin_define_float_constants): Add
1477         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1478         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1479         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1480         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1481         to "((double)%sL)" otherwise "%s".
1482
1483 2005-12-13  Paul Brook  <paul@codesourcery.com>
1484
1485         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1486         apcs/atpcs.
1487
1488 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1489
1490         * tree-flow.h: Allow compilation with a C++ compiler.
1491         (struct edge_prediction): Prefix all field names  with "ep_".
1492         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1493         (tree_predict_edge, combine_predictions_for_bb): Likewise.
1494         (remove_predictions_associated_with_edge): Likewise.
1495         
1496 2005-12-12  Jeff Law  <law@redhat.com>
1497
1498         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1499         reassociation code.
1500         * passes.c (init_optimization_passes): Run reassociation again
1501         after loop optimizations.
1502
1503 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
1504
1505         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1506         if necessary.
1507         (optimize_stmt): Ditto.
1508         (canonicalize_comparison): New function.
1509         * tree-ssa-operands.c (swap_tree_operands): Make external.
1510         (get_expr_operands): Stop auto-canonicalization.
1511         * tree-ssa-reassoc.c: Rewrite.
1512         (init_optimization_passes): 
1513         * tree-flow.h (swap_tree_operands): Prototype.
1514         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1515
1516 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1517
1518         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1519         indicate function epilogue has been output.
1520         (pa_asm_output_mi_thunk): Likewise.
1521         (output_deferred_plabels): Put plabels in readonly data section when
1522         not generating PIC code.
1523         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1524         information.  Add assert.
1525         (som_output_comdat_data_section_asm_op): New function.
1526         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1527         instead of output_section_asm_op for COMDAT sections.
1528
1529 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
1530
1531         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1532         Fix whitespace in vincinity of to-be-installed changes.
1533         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1534         (insns_match_p): Likewise.
1535
1536 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1537
1538         * config.gcc (ms1): Replace with ...
1539         (mt): ... this.
1540         * config/ms1: Rename to ...
1541         * config/mt: ... here.  Rename ms1 files to mt.
1542         * config/mt/mt.c: Adjust gt-mt.h #include.
1543         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1544         (crti.o, crtn.o): Adjust file names.
1545
1546 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1547
1548         * varray.h: Allow compilation with a C++ compiler.
1549         (union varray_data_tag): Prefix all field names with "vdt_".
1550         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1551         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1552         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1553         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1554         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1555         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1556         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1557         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
1558         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
1559         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
1560         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
1561         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
1562         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
1563         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1564         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
1565         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
1566         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
1567         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
1568         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
1569         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
1570         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
1571         VARRAY_TOP_TREE_PTR): Likewise.
1572         * varray.c (varray_grow): Likewise.
1573         (varray_clear): Likewise.
1574
1575 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
1576
1577         PR target/25299
1578         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1579         alignment to doubleword if the first field is a double array.
1580         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1581
1582 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1583
1584         * tree-ssa-structalias.c (process_constraint): Remove code to
1585         transform addressofs into scalar.
1586         (create_variable_info_for): In whole-program IPA, globals don't
1587         point to ANYTHING by default.
1588
1589 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1590
1591         * timevar.def (TV_IPA_PTA): New.
1592         * tree-pass.h (pass_ipa_pta): New
1593         * tree-ssa-structalias.c: Include cgraph.h
1594         (in_ipa_mode): New.
1595         (predbitmap_obstack): New.
1596         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1597         (struct constraint_stats): Add num_edges.
1598         (new_var_info): Don't call bitmap_clear.
1599         (struct constraint_edge): Update docs.
1600         (new_constraint_edge): Remove src param.
1601         (struct constraint_graph): Add zero_weight_succs,
1602         zero_weight_preds.  Update docs.
1603         (constraint_expr_equal): Reformat.
1604         (constraint_edge_equal): Update for removal of src.
1605         (constraint_edge_less): Ditto.
1606         (constraint_edge_vec_find): Ditto.
1607         (erase_graph_self_edge): Update for removal of src and and zero
1608         weight bitmap.
1609         (clear_edges_for_node): Ditto.
1610         (add_graph_edge): Ditto.
1611         (get_graph_weights): Ditto.
1612         (allocate_graph_weights): Ditto.
1613         (merge_graph_nodes): Ditto.
1614         (int_add_graph_edge): Ditto.
1615         (valid_graph_edge): Ditto.
1616         (valid_weighted_graph_edge): Ditto.
1617         (build_constraint_graph): Ditto.
1618         (scc_visit): Ditto.
1619         (collapse_nodes): Ditto.
1620         (process_unification_queue): Ditto.
1621         (topo_visit): Ditto.
1622         (solve_graph): Ditto.
1623         (do_structure_copy): Ditto.
1624         (perform_var_substitution): Ditto.
1625         Init and release obstack.
1626         (handle_ptr_arith): Try to resolve directly.
1627         (find_func_aliases): Don't call update_alias_info here
1628         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1629         (do_sd_constraint): Add code for propagating faster.
1630         Update.
1631         (do_ds_constraint): Ditto.
1632         (count_num_arguments): New function.
1633         (create_function_info_for): Ditto.
1634         (create_variable_info_for): Handle FUNCTION_DECL.
1635         (intra_create_variable_infos): Use make_constraint_to_anything.
1636         (init_alias_vars): Init obstacks here.
1637         (need_to_solve): Handle zero weight graph changes.
1638         (compute_points_to_sets): Call update_alias_info here.
1639         (delete_points_to_sets): Free zero weight preds/succs here.
1640         (gate_ipa_pta): New.
1641         (ipa_pta_execute): New
1642
1643 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1644
1645         * tree-ssa-structalias.c (var_anyoffset): Removed.
1646         (anyoffset_tree): Ditto.
1647         (anyoffset_id): Ditto.
1648         (do_deref): Take vector of constraints, no return value.
1649         Update to work on vector.                
1650         (get_constraint_for): Ditto.
1651         (get_constraint_for_component_ref): Ditto.
1652         (do_structure_copy): Ditto.
1653         (handle_ptr_arith): Ditto.
1654         (find_func_aliases): Ditto.
1655         (set_uids_in_ptset): Remove anyoffset handling.
1656         (init_base_vars): Ditto.
1657
1658 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
1659
1660         PR c++/25010
1661         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1662         DECL_EXTERNAL functions have no bodies.  Tidy.
1663
1664 2005-12-10  Andreas Schwab  <schwab@suse.de>
1665
1666         * except.c (switch_to_exception_section): Only define if
1667         TARGET_UNWIND_INFO is not defined.
1668
1669 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1670
1671         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1672         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1673
1674 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1675
1676         * output.h (init_section, fini_section): Delete.
1677         * varasm.c (init_section, fini_section): Delete.
1678         (init_varasm_once): Don't initialize them.
1679         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1680         there are no corresponding varasm.c variables.
1681
1682 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1683
1684         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1685         of EH_FRAME_SECTION_NAME into...
1686         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
1687         if it is still null.
1688         * except.c (default_exception_section): Delete, moving most
1689         of the code to...
1690         (switch_to_exception_section): ...this new function.  Set
1691         exception_section if it is still null, then switch to it.
1692         (output_function_exception_table): Use switch_to_exception_section.
1693         * varasm.c (exception_section, eh_frame_section): Update comments.
1694         (get_section): Hoist use of SECTION_NAMED.
1695         (init_varasm_once): Don't set exception_section and eh_frame_section.
1696         * output.h (default_exception_section): Delete.
1697         (default_eh_frame_section): Delete.
1698
1699 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1700
1701         * config/bfin/bfin.c: Include "cgraph.h".
1702         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1703         Return the reg that holds the pointer to the GOT.
1704         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1705         doing stack checking.
1706
1707 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
1708
1709         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1710         recompute_tree_invarant_for_addr_expr.
1711         Update uses everywhere.
1712
1713 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
1714
1715         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1716         (MULTILIB_DIRNAMES): Define.
1717
1718 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1719
1720         PR target/25311
1721         * config/s390/s390.c (struct s390_address): New field literal_pool.
1722         (s390_decompose_address): Compute literal_pool field.  Do not 
1723         assume register %r13 is always (and solely) used as pool base.
1724         (s390_extra_constraint_str): Use literal_pool field.
1725
1726 2005-12-09  Thiemo Seufer  <ths@networkno.de>
1727
1728         * config/mips/mips.c (override_options): Don't allow too small
1729         integers in FP registers.
1730
1731 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1732
1733         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1734         targetm.binds_local_p to check for local function calls.
1735
1736 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
1737
1738         PR debug/24908
1739         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1740         call_used_regs can't be used to save reg in another reg.
1741
1742 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1743             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1744
1745         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1746         abort.
1747         * except.c (output_ttype): Likewise.
1748         * tree-object-size.c (collect_object_sizes_for): Likewise.
1749         (check_for_plus_in_loops_1): Likewise.
1750         (check_for_plus_in_loops): Likewise.
1751         (compute_object_sizes): Use gcc_unreachable instead of abort.
1752
1753 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1754
1755         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1756         (loop_end, loop_init, doloop_end): New insns.
1757         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1758         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1759         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1760         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1761         * config/ms1/ms1.c: #include basic-block.h
1762         (struct machine_function): Add has_loops field.
1763         (ms1_add_loop): New.
1764         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1765         (struct loop_info, struct loop_work): New.
1766         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1767         (ms1_reorg_loops): New loop optimization.
1768         (ms1_machine_reorg): Call it.
1769         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1770
1771 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
1772
1773         PR tree-optimization/25248
1774         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1775         evolution_of_loop from the failed attempt.  Remove handling
1776         of MULT_EXPR.
1777
1778 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1779
1780         * tree.h (DECL_EXTERNAL): Clarify documentation.
1781
1782 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1783             Jakub Jelinek  <jakub@redhat.com>
1784
1785         PR target/25268
1786         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1787         argument.  Don't drop outer ANDs.
1788         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1789         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1790         prototype.
1791         * config/s390/predicates.md (setmem_operand): Remove.
1792         (shift_count_operand): Rename to...
1793         (shift_count_or_setmem_operand): ... this.  Adjust
1794         s390_decompose_shift_count caller.
1795         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1796         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1797         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1798         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1799         rotl<mode>3_and, setmem_long_and): New insns.
1800         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1801         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1802         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1803         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1804         of shift_count_operand.
1805         (setmem_long): Use shift_count_or_setmem_operand instead of
1806         setmem_operand.
1807
1808 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
1809             Andreas Tobler  <a.tobler@schweiz.ch>
1810
1811         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1812         tr expression.
1813
1814 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1815
1816         * expr.c (force_operand): Use convert_to_mode for conversions.
1817
1818 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1819
1820         * reload.h (reg_equiv_invariant): Declare.
1821         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1822         register also when reg_equiv_invariant[R] is set.
1823
1824 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1825             Andreas Tobler  <a.tobler@schweiz.ch>
1826
1827         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1828
1829 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
1830
1831         * tree-ssa-pre.c (bitmap_set_and): New function.
1832         (bitmap_set_and_compl): New function.
1833         (bitmap_set_empty_p): New function.
1834         (insert_extra_phis): New function.
1835         (compute_avail): Use insert_extra_phis.
1836
1837 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1838
1839         * config/s390/s390.c (s390_expand_atomic): New function.
1840         Adjust comment of helper functions.
1841         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1842         * config/s390/s390.md ("ATOMIC"): New code macro.
1843         ("atomic"): Corresponding new code attribute.
1844         ("sync_lock_test_and_set[hq]i", 
1845         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1846
1847 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1848
1849         * config/s390/s390.c (s390_expand_mask_and_shift, 
1850         struct alignment_context, init_alignment_context, 
1851         s390_expand_cs_hqi): New.
1852         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1853         * config/s390/s390.md ("sync_compare_and_swaphi",
1854         "sync_compare_and_swapqi"): New pattern.
1855
1856 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
1857
1858         Fix PR tree-optimization/25291
1859         * tree-ssa-operands.c (add_call_clobber_ops): Remove
1860         redundant and crashing check.
1861
1862 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
1863
1864         PR target/25212
1865         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1866         tests further when !strict && reload_in_progress.
1867         (print_operand): Check that both operands of indexed address are regs.
1868         (print_operand_address): Likewise.
1869         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1870         (INT_REG_OK_FOR_BASE_P): Correct.
1871
1872 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1873
1874         Preparation for PR rtl-optimization/20070 / part1
1875         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1876         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1877         outgoing_edges_match.
1878         (outgoing_edges_match): Use condjump_equiv_p.
1879         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1880         into..
1881         * struct-equiv.c: New file.
1882         (death_notes_match_p) New function, broken out of insns_match_p.
1883         * Makefile.in (OBJS-common): Add struct-equiv.o.
1884         (struct-equiv.o): New target.
1885
1886 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1887
1888         * coretypes.h: Revert previous change.
1889         * config/darwin.h: Revert previous reversion.
1890         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1891
1892 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1893
1894         * coretypes.h (section): Provide dummy definition for target files.
1895         * config/darwin.h: Revert previous change.
1896
1897 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1898
1899         * doc/sourcebuild.texi (all.build, install-normal): Remove.
1900         * configure.ac: Remove all.build and install-normal from target_list
1901         * configure: Regenerate.
1902         * Makefile.in (install): Don't depend on install-normal.
1903
1904 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1905
1906         * Makefile.in: Document the use of stamps.
1907
1908 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1909
1910         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1911         * Makefile.in: Add code to compute some dependencies on s-gtype
1912         automatically.  Remove the declaration of those dependencies.
1913
1914 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1915
1916         * gcc/reload.c (push_secondary_reload): Fix typo:
1917         s/insn_constraint/scratch_constraint/.
1918
1919 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1920
1921         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1922
1923 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1924
1925         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1926         (alpha_elf_select_rtx_section): Return the selected section rather
1927         than emitting assembly code.
1928         (alpha_write_linkage): Emit a ".link" directive directly and then
1929         set in_section to NULL.
1930         (vms_asm_out_constructor): Use switch_to_section.
1931         (vms_asm_out_destructor): Likewise.
1932         (unicosmk_output_common): Set in_section to NULL instead of calling
1933         the dummy common_section function.
1934         (unicosmk_text_section): Delete in favor of...
1935         (unicosmk_output_text_section_asm_op): ...this new function.
1936         (unicosmk_data_section): Delete in favor of...
1937         (unicosmk_output_data_section_asm_op): ...this new function.
1938         (unicosmk_init_sections): New function.
1939         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1940         (unicosmk_output_ssib): Set in_section to NULL instead of calling
1941         the dummy ssib_section function.
1942         (unicosmk_section_buf): Delete.
1943         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1944         (unicosmk_data_section): Delete.
1945         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1946         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1947         (SECTION_FUNCTION_TEMPLATE): Delete.
1948         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1949         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1950         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1951         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1952         (TARGET_ASM_INIT_SECTIONS): Define.
1953         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1954         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1955         (link_section, literals_section): Delete.
1956         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1957         set in_section to NULL.
1958
1959         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1960         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1961         (COMMON_SECTION): Delete.
1962         (TARGET_ASM_INIT_SECTIONS): Define.
1963         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1964         the dummy common_section function.
1965         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1966         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1967         between readonly_data_section and text_section to check whether
1968         read-only data is being put in the text section.
1969         (arm_output_function_epilogue): Use switch_to_section.
1970         (arm_elf_asm_constructor): Likewise.
1971         (thumb_call_via_reg): Replace call to in_text_section with
1972         a comparison between in_section and text_section.
1973         (arm_file_end): Use switch_to_section.
1974         (aof_text_section): Delete in favor of...
1975         (aof_output_text_section_asm_op): ...this new function.
1976         (aof_data_section): Delete in favor of...
1977         (aof_output_data_section_asm_op): ...this new function.
1978         (aof_asm_init_sections): New function.
1979         (zero_init_section): Moved from config/arm/aof.h.
1980         (aof_dump_imports, aof_file_start): Use switch_to_section.
1981         * config/arm/arm.h (thumb_call_via_label): Update comment.
1982         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1983         (common_section): Delete.
1984         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1985         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1986         global switch_to_section function instead of the old port-local one.
1987         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1988         (SWITCH_TO_SECTION_FUNCTION): Delete.
1989         (drectve_section): Redefine as a macro.
1990         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1991         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1992         switch_to_section.
1993
1994         * config/avr/avr.c (progmem_section): New variable.
1995         (avr_output_progmem_section_asm_op): New function.
1996         (avr_asm_init_sections): New function.
1997         (avr_output_addr_vec_elt): Use switch_to_section.
1998         * config/avr/avr.h (progmem_section): Declare.
1999         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2000         (READONLY_DATA_SECTION): Delete.
2001         (TARGET_ASM_INIT_SECTIONS): Define.
2002         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
2003         * config/avr/avr-protos.h (progmem_section): Delete.
2004
2005         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2006
2007         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2008         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
2009
2010         * config/darwin-sections.def: New file.
2011         * config/darwin.c: Define all sections in darwin-sections.def.
2012         (output_objc_section_asm_op, darwin_init_sections): New functions.
2013         (machopic_output_indirection): Use switch_to_section.
2014         (machopic_select_section): Return the selected section rather than
2015         emitting assembly code.  Replace the static function table with
2016         inline conditional expressions.  Update the tests of last_text_section
2017         and move them into the FUNCTION_DECL block.
2018         (machopic_select_rtx_section): Return the selected section rather than
2019         emitting assembly code.
2020         (machopic_asm_out_constructor, machopic_asm_out_destructor)
2021         (darwin_file_end): Use switch_to_section.
2022         * config/darwin.h: Use darwin-sections.def to declare sections.
2023         (INIT_SECTION_ASM_OP): Remove empty definition.
2024         (HAS_INIT_SECTION): Define this instead.
2025         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2026         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
2027         (TARGET_ASM_EH_FRAME_SECTION): Delete.
2028         (TARGET_ASM_INIT_SECTIONS): Define.
2029         * config/darwin-protos.h (darwin_init_sections): Declare.
2030         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
2031         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
2032         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
2033         (constructor_section, destructor_section, mod_init_section): Delete.
2034         (mod_term_section): Delete.
2035         (darwin_exception_section, darwin_eh_frame_section): Delete.
2036         (machopic_select_section): Return a section.
2037         (machopic_select_rtx_section): Likewise.
2038         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
2039         (const_section, const_coal_section, const_data_section): Delete.
2040         (const_data_coal_section, data_coal_section, cstring_section): Delete.
2041         (literal4_section, literal8_section, constructor_section): Delete.
2042         (mod_init_section, mod_term_section, destructor_section): Delete.
2043         (objc_class_section, objc_meta_class_section, objc_category_section)
2044         (objc_class_vars_section, objc_instance_vars_section): Delete.
2045         (objc_cls_meth_section, objc_inst_meth_section): Delete.
2046         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
2047         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
2048         (objc_symbols_section, objc_module_info_section): Delete.
2049         (objc_image_info_section, objc_protocol_section): Delete.
2050         (objc_string_object_section, objc_constant_string_object_section)
2051         (objc_class_names_section, objc_meth_var_names_section): Delete.
2052         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
2053         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
2054         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
2055         (darwin_exception_section, darwin_eh_frame_section): Delete.
2056         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
2057
2058         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
2059         (frv_asm_out_destructor): Likewise.
2060         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2061         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
2062         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
2063         get_named_section.
2064         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
2065         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
2066         (data_section): Delete.
2067
2068         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2069         (DRECTVE_SECTION_FUNCTION): Delete.
2070         (drectve_section): Redefine as a macro that sets in_section after
2071         emitting the directive.
2072         (SWITCH_TO_SECTION_FUNCTION): Delete.
2073         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
2074         in_text_section with comparison between in_section and text_section.
2075         * config/i386/i386.c (x86_64_elf_select_section): Return the section
2076         rather than emitting assembly code.  Use get_named_section.
2077         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
2078         get_named_section.
2079         (machopic_output_stub): Use switch_to_section.
2080         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
2081         (nwld_named_section_asm_out_destructor): Use get_section and
2082         switch_to_section.
2083
2084         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
2085         rather than emitting assembly code.
2086         (ia64_rwreloc_select_section): Likewise.
2087         (ia64_rwreloc_select_rtx_section): Likewise.
2088         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
2089         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2090         switch_to_section.
2091         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2092         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
2093
2094         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
2095         section rather than emitting assembly code.
2096         (iq2000_select_section): Likewise.
2097         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
2098         (sbss_section): Delete.
2099
2100         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
2101         and get_named_section.
2102         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
2103
2104         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
2105         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
2106         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
2107         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
2108         in_section to NULL.
2109         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2110         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
2111         global switch_to_section function instead of the old port-local one.
2112         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2113         (SWITCH_SECTION_FUNCTION): Delete.
2114         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
2115         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
2116         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
2117         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
2118         in_section to NULL.
2119         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
2120         global switch_to_section function instead of the old port-local one.
2121         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2122
2123         * config/mips/mips.c (mips_file_start): Update comment.
2124         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
2125         (mips_output_aligned_decl_common): Use switch_to_section.
2126         (mips_select_rtx_section): Return the section rather than emitting
2127         assembly code.  Use get_named_section.
2128         (mips_function_rodata_section: Likewise get_section.
2129         (build_mips16_function_stub): Use switch_to_section.
2130         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
2131         (SDATA_SECTION_ASM_OP): Delete.
2132         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
2133         (EXTRA_SECTION_FUNCTIONS): Delete.
2134
2135         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
2136         (mmix_asm_output_aligned_local): Use switch_to_section.
2137
2138         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
2139         (som_one_only_readonly_data_section): New variables.
2140         (pa_output_function_epilogue): Set in_section to NULL instead of
2141         calling forget_section.
2142         (output_deferred_plabels): Use select_section.
2143         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
2144         of calling forget_section.
2145         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
2146         (pa_asm_output_aligned_local): Use select_section.
2147         (som_text_section_asm_op): Delete in favor of...
2148         (som_output_text_section_asm_op): ...this new function.
2149         (pa_som_asm_init_sections): New function.
2150         (pa_select_section): Return the section rather than emitting
2151         assembly code.
2152         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2153         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
2154         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
2155         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
2156         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
2157         (som_readonly_data_section, som_one_only_readonly_data_section)
2158         (som_one_only_data_section, forget_section): Delete.
2159         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
2160         (TARGET_ASM_INIT_SECTIONS): Define.
2161         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
2162
2163         * config/rs6000/rs6000.c (read_only_data_section): New variable.
2164         (private_data_section, read_only_private_data_section): New variables.
2165         (sdata2_section, toc_section): New variables.
2166         (rs6000_file_start): Use switch_to_section.
2167         (rs6000_assemble_integer): Use comparisons against in_section
2168         instead of calling in_toc_section and in_text_section.  Use
2169         unlikely_text_section_p.
2170         (rs6000_elf_output_toc_section_asm_op): New function, derived
2171         from the old rs6000/sysv4.h toc_section function.
2172         (rs6000_elf_asm_init_sections): New function.
2173         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
2174         the section rather than emitting assembly code.
2175         (machopic_output_stub): Use switch_to_section.
2176         (toc_section): Delete dummy function.
2177         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
2178         switch_to_section and get_section.
2179         (rs6000_xcoff_output_readonly_section_asm_op): New function.
2180         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
2181         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
2182         the old rs6000/xcoff.h toc_section function.
2183         (rs6000_xcoff_asm_init_sections): New function.
2184         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
2185         the section rather than emitting assembly code.
2186         (rs6000_xcoff_file_start): Use switch_to_section.
2187         (rs6000_xcoff_file_end): Likewise.
2188         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
2189         (sdata2_section, sbss_section, private_data_section): Delete.
2190         (read_only_data_section, read_only_private_data_section): Delete.
2191         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2192         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
2193         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
2194         (FINI_SECTION_FUNCTION): Delete.
2195         (TARGET_ASM_INIT_SECTIONS): Define.
2196         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
2197         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2198         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
2199         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
2200         (READONLY_DATA_SECTION): Delete.
2201         (TARGET_ASM_INIT_SECTIONS): Define.
2202         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
2203         to NULL rather than no_section.
2204         (TARGET_ASM_EXCEPTION_SECTION): Delete.
2205
2206         * config/sh/sh.c (sh_file_start): Use switch_to_section.
2207
2208         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
2209         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
2210         from call to current_function_section.
2211
2212         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
2213         (bss100_section): New variable.
2214         (xstormy16_asm_output_aligned_common): Use switch_to_section.
2215         (xstormy16_asm_init_sections): New function.
2216         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
2217         switch_to_section and get_section.
2218         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
2219         from calls to current_function_section.
2220         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
2221         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
2222         (TARGET_ASM_INIT_SECTIONS): Define.
2223         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
2224
2225         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2226         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
2227         (FINI_SECTION_FUNCTION): Delete.
2228
2229         * config/v850/v850.c: Include gt-v850.h.
2230         (rosdata_section, rozdata_section, tdata_section, zdata_section)
2231         (zbss_section): New variables.
2232         (v850_output_aligned_bss): Use switch_to_section.
2233         (v850_asm_init_sections): New function.
2234         (v850_select_section): Return the section rather than emitting
2235         assembly code.
2236         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2237         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
2238         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
2239         (TARGET_ASM_INIT_SECTIONS): Define.
2240         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
2241         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
2242         (zbss_section): Delete.
2243
2244         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2245
2246         * config/vx-common.h (vxworks_exception_section): Delete.
2247         (TARGET_ASM_EXCEPTION_SECTION): Delete.
2248
2249         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
2250         section rather than emitting assembly code.
2251         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
2252         switch_to_section.
2253
2254         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
2255         * coretypes.h (section): New union and typedef.
2256         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
2257         from call to current_function_section.
2258         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
2259         (dbxout_symbol_location): Use switch_to_section.
2260         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
2261         most of the code into...
2262         (default_eh_frame_section): ...here.  Return a section.
2263         (collect2_eh_frame_section): Delete, moving most of the code into..
2264         (switch_to_eh_frame_section): ...this new function.
2265         (debug_info_section, debug_abbrev_section, debug_aranges_section)
2266         (debug_macinfo_section, debug_line_section, debug_loc_section)
2267         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
2268         variables.
2269         (output_call_frame_info): Call switch_to_eh_frame_section instead of
2270         eh_frame_section.  Use switch_to_section and get_section.
2271         (dwarf2out_begin_prologue): Use switch_to_section.
2272         (AT_string_form): Check the flags in debug_str_section instead of
2273         DEBUG_STR_SECTION_FLAGS.
2274         (output_comp_unit): Use switch_to_section, get_section, and
2275         debug_info_section.
2276         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
2277         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
2278         from call to current_function_section.
2279         (dwarf2out_var_location): Use unlikely_text_section_p.
2280         (dwarf2out_source_line): Use switch_to_section.  Remove argument
2281         from call to current_function_section.
2282         (dwarf2out_start_source_file, dwarf2out_end_source_file)
2283         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
2284         debug_macinfo_section.
2285         (dwarf2out_init): Initialize the new section variables.  Use them
2286         instead of calls to named_section_flags.  Use switch_to_section.
2287         (output_indirect_string): Use switch_to_section and debug_str_section.
2288         (dwarf2out_finish): Use switch_to_section and the new section
2289         variables.
2290         * except.c (default_exception_section): Return the section instead
2291         of emitting assembly code.
2292         (output_function_exception_table): Use the global exception_section
2293         variable instead of the target hook.  Use switch_to_section.  Remove
2294         argument from call to current_function_section.
2295         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
2296         (shorten_branches): Use pointer comparisons to detect whether the
2297         text section is the same as readonly_data_section.
2298         (profile_function): Use switch_to_section.  Remove argument from
2299         call to current_function_section.
2300         (final_scan_insn): Likewise.  Update use of last_text_section.
2301         * gengtype.c (open_base_files): Add an include of output.h.
2302         * output.h (text_section, data_section, readonly_data_section)
2303         (ctors_section, dtors_section, bss_section, init_section)
2304         (fini_section, sdata_section): Turn into section pointers.
2305         (in_text_section, in_unlikely_text_section, exports_section)
2306         (drectve_section, named_section, mergeable_string_section)
2307         (last_text_section_name): Delete.
2308         (default_exception_section, default_eh_frame_section): Return sections.
2309         (SECTION_DECLARED, SECTION_NAMED): New macros.
2310         (SECTION_MACH_DEP): Bump value.
2311         (section_common, named_section, unnamed_section): New structures.
2312         (unnamed_section_callback): New typedef.
2313         (section): New union.
2314         (sbss_section, exception_section, eh_frame_section): New variables.
2315         (in_section, last_text_section): Turn into section pointers.
2316         (get_unnamed_section, get_section, get_named_section): New functions.
2317         (mergeable_constant_section, function_section): Return a section.
2318         (unlikely_text_section): Likewise.
2319         (current_function_section): Likewise.  Remove the decl argument.
2320         (unlikely_text_section_p, switch_to_section): New functions.
2321         (output_section_asm_op): New function.
2322         (set_named_section_flags, named_section_flags, named_section_real)
2323         (named_section_first_declaration): Delete.
2324         (default_select_section, default_elf_select_section): Return a section.
2325         (default_elf_select_section_1, default_function_rodata_section)
2326         (default_no_function_rodata_section, default_select_rtx_section)
2327         (default_elf_select_rtx_section): Likewise.
2328         * rtl.h (in_data_section): Delete.
2329         * sdbout.c (sdbout_one_type): Use switch_to_section.
2330         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
2331         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
2332         (TARGET_ASM_EH_FRAME_SECTION): Poison.
2333         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
2334         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
2335         (TARGET_ASM_OUT): Update after above changes.
2336         * target.h (init_sections): New hook.
2337         (exception_section, eh_frame_section): Delete.
2338         (select_section, select_rtx_section, function_rodata_section): Return
2339         a section rather than emitting assembly code.
2340         * varasm.c (text_section, data_section, readonly_data_section)
2341         (ctors_section, dtors_section, bss_section, init_section)
2342         (fini_section): Turn into section pointers.
2343         (sdata_section, sbss_section, exception_section): New variables.
2344         (eh_frame_section): New variable.
2345         (in_section): Make global and turn into a section pointer.
2346         (last_text_section): Turn into a section pointer.
2347         (unnamed_sections): New variable.
2348         (in_named_name, last_text_section_name): Delete.
2349         (EXTRA_SECTION_FUNCTIONS): Delete.
2350         (in_named_entry): Delete.
2351         (section_htab): New variable, replacing...
2352         (in_named_htab): ...this deleted variable.
2353         (section_entry_eq, section_entry_hash): New functions, based on...
2354         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
2355         (get_unnamed_section, get_section): New functions.
2356         (unlikely_text_section): Return a section instead of emitting
2357         assembly code.
2358         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2359         (get_named_section_flags, named_section_first_declaration): Delete.
2360         (unlikely_text_section_p): New function.
2361         (named_section_real, named_section): Delete.
2362         (get_named_section): New function.
2363         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2364         (function_section): Return a section rather than emitting
2365         assembly code.
2366         (current_function_section): Likewise.  Remove argument.  Use
2367         last_text_section if nonnull, otherwise use function_section.
2368         (default_function_rodata_section): Return a section rather than
2369         emitting assembly code.  Use get_section.
2370         (default_no_function_rodata_section): Return a section rather than
2371         emitting assembly code.
2372         (variable_section): Use switch_to_section and get_named_section.
2373         (mergeable_string_section): Return a section rather than emitting
2374         assembly code.  Use get_section.  Make static.  Don't take special
2375         countermeasures for empty strings.
2376         (mergeable_constant_section): Return a section rather than emitting
2377         assembly code.  Use get_section.
2378         (default_named_section_asm_out_destructor): Use switch_to_section
2379         and get_section.
2380         (default_dtor_section_asm_out_destructor): Use switch_to_section.
2381         (default_named_section_asm_out_constructor): Use switch_to_section
2382         and get_section.
2383         (default_ctor_section_asm_out_constructor): Use switch_to_section.
2384         (assemble_start_function): Likewise.  Set last_text_section to
2385         NULL rather than no_section.  Change the type of save_section.
2386         (assemble_zeros, assemble_variable): Use the section flags to detect
2387         whether or not a section is text.
2388         (assemble_static_space): Use switch_to_section.
2389         (assemble_trampoline_template): Likewise.
2390         (output_constant_def_contents): Use switch_to_section and
2391         get_named_section.
2392         (output_constant_pool_1): Use switch_to_section.  Use the section
2393         flags to see whether sections contain mergeable data.
2394         (init_varasm_once): Initialize section_htab instead of in_named_htab.
2395         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
2396         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2397         whether a section has already been declared.
2398         (default_select_section, default_elf_select_section): Return a
2399         section rather than emitting assembly code.
2400         (default_elf_select_section_1): Likewise.  Use bss_section for
2401         SECCAT_BSS if nonnull.  Use get_named_section.
2402         (default_select_rtx_section): Return a section rather than
2403         emitting assembly code.
2404         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
2405         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2406         (output_section_asm_op, switch_to_section): New functions.
2407         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2408         get_named_section.
2409
2410         * doc/tm.texi: Expand the introduction to the sections documentation.
2411         (TRAMPOLINE_SECTION): Document new interface.
2412         (SDATA_SECTION_ASM_OP): Document new macro.
2413         (READONLY_DATA_SECTION): Delete.
2414         (SDATA_SECTION_ASM_OP): Document new macro.
2415         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2416         (TARGET_ASM_INIT_SECTIONS): Document new hook.
2417         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2418         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2419         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2420
2421 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
2422
2423         * gcc.c (init_gcc_specs): Match braces inside conditionally
2424         compiled strings.
2425
2426 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
2427
2428         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2429
2430 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
2431
2432         PR C++/24138
2433         * tree.c (integer_all_onesp): Always return true if all bits on.
2434
2435         * testsuite/g++.dg/init/array0.C: New.
2436
2437 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
2438
2439         * doc/md.texi: Adapt to implementation.
2440
2441 2005-12-06  Andreas Schwab  <schwab@suse.de>
2442
2443         * opts.c (decode_options): Fix typo in message.
2444
2445 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
2446
2447         PR other/13873
2448         * longlong.h: Merge PPC tests from upstream.
2449
2450 2005-12-06  Richard Guenther  <rguenther@suse.de>
2451
2452         * fold-const.c (fold_convert): Do not build and fold
2453         CONVERT_EXPR, but always use NOP_EXPR.
2454
2455 2005-12-06  Jan Beulich  <jbeulich@novell.com>
2456
2457         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2458         __builtin_ia32_paddq and __builtin_ia32_psubq.
2459         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2460         __builtin_ia32_pshufw.
2461         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2462
2463 2005-12-05  James E Wilson  <wilson@specifix.com>
2464
2465         PR target/24934
2466         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2467         is set.
2468
2469 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
2470         
2471         * print-tree.c (print_node): Ditto.
2472         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2473         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2474         before accessing DECL_ARTIFICIAL. 
2475         Handle new tag tree codes.
2476         * tree-flow-inline.h (clear_call_clobbered): Update for tag
2477         changes.
2478         (unmodifiable_var_p): Ditto.
2479         * tree-flow.h (mem_tag_kind): Remove.
2480         (struct var_ann_d): Remove mem_tag_kind member.
2481         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2482         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2483         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2484         (group_aliases): Ditto.
2485         (setup_pointers_and_addressables): Ditto.
2486         (is_escape_site): Ditto.                                          
2487         (may_alias_p): Ditto.
2488         (create_tag_raw): New function.
2489         (create_memory_tag): Use it.
2490         (dump_alias_info): Update for tags.
2491         (may_be_aliased): Ditto.
2492         (add_type_alias): Ditto.
2493         (new_type_alias): Ditto.
2494         (create_sft): Ditto.
2495         (create_structure_vars): Ditto.
2496         * tree-ssa-ccp.c (get_default_value): Ditto.
2497         * tree-ssa-operands.c (get_expr_operands): Ditto.
2498         (add_stmt_operand): Ditto.
2499         (add_call_clobber_ops): Remove duplicated condition.
2500         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2501         tags.
2502         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2503         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2504         * tree.c (init_ttree): Update structures for new tree codes.
2505         (tree_code_size): Update sizes for new tree codes.
2506         (make_node_stat): Don't try to set common things on minimal
2507         structures.
2508         (tree_node_structure): Update for tags.
2509         (is_global_var): Ditto.
2510         * tree.def: Add new tree codes.
2511         * tree.h (MTAG_P): New macro.
2512         (TREE_MEMORY_TAG_CHECK): Ditto.
2513         (SSA_VAR_P): Update for tags.
2514         (struct tree_memory_tag): New structure.
2515         (MTAG_GLOBAL): New macro.
2516         (union tree_node): Add memory tag member.
2517         * treestruct.def (TS_MEMORY_TAG): New.
2518         
2519 2005-12-05  Dale Johannesen  <dalej@apple.com>
2520
2521         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
2522         what was approved (PR 24323).
2523
2524 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2525
2526         * doc/c-tree.texi (Function Bodies): Remove description of
2527         RETURN_INIT.
2528
2529 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
2530
2531         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2532         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2533         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2534         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2535         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2536         __divxc3): Document.
2537
2538 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
2539
2540         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2541         previous behaviour.
2542         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2543         hook_bool_void_false.
2544         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2545         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2546
2547         * config/darwin.c (machopic_select_section): It's not defined
2548         as weak if it's only marked as weak_import.
2549         
2550         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2551         Prototype.
2552
2553         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2554         A hidden weak object does bind locally.  Strong linkonce data
2555         counts like any other strong symbol for binding.
2556         (weak_finish_1): Don't specially handle weakrefs, they no longer
2557         arrive here.
2558         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2559         * c-common.c (handle_alias_attribute): Allow static aliases
2560         of variables.
2561         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2562         * gthr-dce.h: Make weakrefs static.
2563         * gthr-tpf.h: Likewise.
2564         * gthr-solaris.h: Likewise.
2565         * gthr-posix.h: Likewise.
2566         * gthr-posix95.h: Likewise.
2567         * config/darwin.c (darwin_encode_section_info): static weakref
2568         variables are not necessarily defined in this translation unit.
2569         * doc/extend.texi (Function Attributes): Mention that an alias
2570         attribute creates a definition for the thing it's attached to.
2571         Change the documentation for weakref to say that the thing
2572         it's attached to must be static.
2573
2574         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2575         we don't go into an infinite loop.
2576
2577 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2578
2579         * config/rs6000/predicates.md (logical_const_operand): Split
2580         out of logical_operand.
2581         (logical_operand): Use it.
2582         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2583         logical_const_operand.
2584
2585 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2586
2587         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2588         and IX86_BUILTIN_CMPNESS.
2589         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2590         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2591         * config/i386/i386.md (movti_internal): Correct type attribute.
2592         Simplify mode attribute.
2593         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2594         Correct type attribute.
2595         (absxf2): Correct operator.
2596         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2597         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2598         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2599         mode attribute.
2600         (sse2_vmsqrtv2df2): Correct mode attribute.
2601
2602 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2603
2604         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2605         16 bits. Provide insn pattern for this case.
2606
2607 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2608
2609         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2610         result.
2611         (__popcountDI2): Likewise.
2612
2613 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2614
2615         PR target/25166
2616         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2617         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2618         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2619         functions.
2620
2621 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2622
2623         * c-typeck.c (null_pointer_constant_p): New function.
2624         (build_conditional_expr, build_c_cast, convert_for_assignment,
2625         build_binary_op): Use it.
2626
2627 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2628
2629         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2630         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2631         CONVERT_EXPR.
2632         (check_function_arguments_recurse): Allow both NOP_EXPR and
2633         CONVERT_EXPR but check conversions preserve precision.
2634         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2635         but check conversions preserve precision.
2636         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
2637         default case.
2638
2639 2005-12-04  Roger Sayle  <roger@eyesopen.com>
2640
2641         PR c/7776
2642         * common.opt (Wstring-literal-comparison): New command line option.
2643         * c-opts.c (c_common_handle_option): Set it with -Wall.
2644         * c-typeck.c (parser_build_binary_op): Issue warning if either
2645         operand of a comparison operator is a string literal, except for
2646         testing equality or inequality against NULL.
2647
2648         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2649
2650 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2651
2652         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2653         of building a NOP_EXPR.
2654         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
2655         NOP_EXPR.
2656         * c-convert.c (convert): Use fold_convert instead of building
2657         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
2658         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
2659         #if 0 code.
2660         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2661         NOP_EXPR the same as CONVERT_EXPR.
2662         * c-typeck.c (build_function_call): Use fold_convert instead of
2663         building a NOP_EXPR directly.
2664         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2665
2666 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2667
2668         PR rtl-optimization/25197
2669         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2670         have a reg.
2671
2672 2005-12-02  Stuart Hastings  <stuart@apple.com>
2673
2674         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2675         warning.
2676
2677 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2678
2679         * c-typeck.c (default_function_array_conversion,
2680         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2681         (build_conditional_expr): Apply integer_zerop to orig_op1 and
2682         orig_op2.  Don't check them for NOP_EXPR.
2683         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2684         around integer zero.
2685
2686 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2687
2688         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2689         toc_save_offset, toc_size, lr_size.
2690         (rs6000_stack_info): Use memset rather than bss struct copy to init.
2691         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2692         Adjust for removal of unused rs6000_stack_t fields.
2693         (debug_stack_info): Adjust.
2694         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
2695         first, and don't bother checking for set/inc of lr on sibcalls.
2696         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2697
2698 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
2699
2700         PR target/25199
2701         * config/i386/i386.md (movqi_1): Only force imovx for alternative
2702         5 if operand 1 is not aligned.  Undo previous constraint change.
2703         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2704
2705 2005-12-02  Richard Guenther  <rguenther@suse.de>
2706
2707         * tree.h (build): Remove prototype.
2708         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2709         * tree.c (build): Remove.
2710         (build0_stat): Update comment.
2711
2712 2005-12-02  Richard Guenther  <rguenther@suse.de>
2713
2714         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2715         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2716         Likewise.
2717         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2718         maybe_fold_offset_to_component_ref): Likewise.
2719         * tree-ssa-dom.c (thread_across_edge,
2720         simplify_rhs_and_lookup_avail_expr,
2721         find_equivalent_equality_comparison, record_equivalences_from_stmt):
2722         Likewise.
2723         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2724         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2725         lower_try_finally_switch): Likewise.
2726         * tree-if-conv.c (add_to_dst_predicate_list,
2727         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2728         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2729         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2730         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2731         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2732         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2733         gimplify_init_ctor_eval, gimplify_init_constructor,
2734         gimplify_variable_sized_compare, gimplify_boolean_expr,
2735         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2736         gimplify_expr, gimplify_body, gimplify_function_tree,
2737         force_gimple_operand): Likewise.
2738         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2739         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2740         mx_register_decls): Likewise.
2741         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2742         get_frame_field, finalize_nesting_tree_1): Likewise.
2743         * tree-inline.c (setup_one_parameter): Likewise.
2744         * tree-vect-transform.c (vectorizable_condition): Likewise.
2745         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2746         Likewise.
2747         * tree-profile.c (tree_gen_edge_profiler): Likewise.
2748         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2749         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2750         * tree-chrec.h (build_polynomial_chrec): Likewise.
2751
2752 2005-12-02  Richard Guenther  <rguenther@suse.de>
2753
2754         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2755         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2756         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2757         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2758         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2759         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2760         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2761         Likewise.
2762         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2763         sh_adjust_unroll_max): Likewise.
2764         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2765         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2766         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2767         Likewise.
2768         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2769         Likewise.
2770         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2771         Likewise.
2772
2773 2005-12-02  Richard Guenther  <rguenther@suse.de>
2774
2775         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2776         simplify_cond_using_ranges): Use buildN instead of build.
2777         * tree-tailcall.c (adjust_accumulator_values,
2778         adjust_return_value): Likewise.
2779         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2780         generate_element_copy, generate_element_zero,
2781         generate_one_element_init): Likewise.
2782         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2783         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2784         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2785         perfect_nestify): Likewise.
2786
2787 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2788
2789         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2790
2791 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2792
2793         * ggc.h (GGC_RESIZEVEC): New.
2794
2795 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2796
2797         * gcc.c (execute): Improve readability.
2798
2799 2005-12-02  Richard Guenther  <rguenther@suse.de>
2800
2801         * tree-cfg.c (mark_used_vars): New function.
2802         (dump_function_to_file): Dump only used VAR_DECLs.
2803
2804 2005-12-02  Richard Guenther  <rguenther@suse.de>
2805
2806         * convert.c (convert_to_integer): Fix compare for nonpositive
2807         constant to use tree_int_cst_sgn <= 0.
2808
2809 2005-12-02  Richard Guenther  <rguenther@suse.de>
2810
2811         * convert.c (convert_to_integer): Use fold_convert instead
2812         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
2813         instead of comparing against 0.  Use build_int_cst instead
2814         of converting integer_zero_node.
2815
2816 2005-12-02  Richard Guenther  <rguenther@suse.de>
2817
2818         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2819         and RROTATE_EXPR.
2820  
2821 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2822
2823         PR target/21017
2824         * combine.c (simplify_logical <IOR>): Simplify more patterns to
2825         rotates.
2826
2827 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2828
2829         PR middle-end/25176
2830         * function.c (expand_function_end): Emit blockage for unwinder
2831         after return label.
2832
2833 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2834
2835         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2836         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2837         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2838         integer constant comparisons.
2839
2840 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
2841             Janis Johnson  <janis187@us.ibm.com>
2842             David Edelsohn  <dje@watson.ibm.com>
2843             Ben Elliston  <bje@au.ibm.com>
2844
2845         * dfp.h, dfp.c: New files.
2846         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2847         (DECNUM_H): Likewise.
2848         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2849         (INCLUDES): Append $(DECNUMINC).
2850         (OBJS-common): Add dfp.o.
2851         (dfp.o): New rule.
2852         * real.h (EXP_BITS): Pinch one bit to ..
2853         (struct real_value): Add decimal field.
2854         (real_format): Change table size, update documentation.
2855         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2856         (real_from_string3): Declare.
2857         (decimal_single_format): Declare.
2858         (decimal_double_format): Declare.
2859         (decimal_quad_format): Declare.
2860         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2861         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2862         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2863         * real.c: Include dfp.h.
2864         (normalize): Early return for decimal floats.
2865         (do_add): Zero decimal field.
2866         (do_compare): Call do_decimal_compare for decimal floats.
2867         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2868         (real_arithmetic): Call decimal_real_arithmetic for decimal
2869         floating point operands.
2870         (real_identical): If a and b are of differing radix, return false.
2871         (real_to_integer): Call decimal_real_to_integer if the value is a
2872         decimal float.
2873         (real_to_integer2): Likewise, call decimal_real_to_integer2.
2874         (real_to_decimal): Likewise, call decimal_real_to_decimal.
2875         (real_to_hexadecimal): Place "N/A" in the return string for
2876         decimal float.
2877         (real_from_string3): New variant, given a mode.
2878         (real_maxval): Use decimal_real_maxval for decimal floats.
2879         (round_for_format): Use decimal_round_for_format for decimals.
2880         (real_convert): Use decimal_real_convert where appropriate.
2881         (significand_size): Handle base 10.
2882         (encode_decimal_single, decode_decimal_single,
2883         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2884         decode_decimal_quad): New functions.
2885         (decimal_single_format): New.
2886         (decimal_double_format): New.
2887         (decimal_quad_format): New.
2888         * machmode.def: Add SD, DD and TD decimal floating point modes.
2889         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2890         Include MODE_DECIMAL_FLOAT.
2891         (DECIMAL_FLOAT_MODE_P): New.
2892         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2893         * genmodes.c (struct mode_data): Add counter field.
2894         (struct mode_data): Update comment for format.
2895         (blank_mode): Initialise counter field.
2896         (new_mode): Increment counter field for each mode defined.
2897         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2898         using a format.
2899         (make_complex_modes): Handle modes containing `D'.
2900         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2901         (make_decimal_float_mode): New.
2902         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2903         (cmp_modes): Compare counter field if other characteristics
2904         similar.
2905         (emit_real_format_for_mode): Support formats for decimal floats.
2906         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2907         Document MODE_DECIMAL_FLOAT.
2908
2909 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2910
2911         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2912         Delete dead code.
2913
2914 2005-12-01  Richard Henderson  <rth@redhat.com>
2915
2916         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2917
2918 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2919
2920         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2921
2922         * config/pa/pa.c (pa_init_builtins): If we detect
2923         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2924         putc_unlocked.
2925
2926 2005-12-01  Richard Guenther  <rguenther@suse.de>
2927
2928         * fold-const.c (fold_binary): Use fold_build2, not
2929         fold (build (...)).
2930
2931 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2932
2933         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2934
2935         * vec.h (VEC_block_remove): New.
2936
2937 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2938
2939         PR c/13384
2940         * c-common.c (lvalue_error): Fix wording.
2941
2942 2005-12-01  Richard Guenther  <rguenther@suse.de>
2943
2944         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2945         thinko in last patch.
2946
2947 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
2948
2949         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2950         than -flat_namespace.
2951
2952 2005-12-01  Ben Elliston  <bje@au.ibm.com>
2953
2954         * mklibgcc.in: Parameterise the script to build soft float
2955         functions by iterating over each type, rather than cloning the
2956         code for each type.
2957
2958 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2959
2960         PR middle-end/25158
2961         * builtins.c (fold_builtin_fputs): Defer check for missing
2962         replacement functions.
2963
2964 2005-11-30  Kean Johnston  <jkj@sco.com>
2965
2966         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2967         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2968
2969 2005-11-30  Richard Guenther  <rguenther@suse.de>
2970
2971         PR tree-optimization/22501
2972         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2973         function split out from ...
2974         (forward_propagate_addr_expr): ... here.  Use it to propagate
2975         ADDR_EXPRs to all uses.
2976
2977 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2978
2979         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2980         * builtins.c (expand_builtin_mathfn): Use them.
2981         (expand_builtin_mathfn_2): Likewise.
2982         (expand_builtin_mathfn_3): Likewise.
2983         (expand_builtin_int_roundingfn): Likewise.
2984         (expand_builtin): Likewise.
2985         (integer_valued_real_p): Likewise.
2986         (fold_builtin_int_roundingfn): Likewise.
2987         (fold_builtin_bitop): Likewise.
2988         (fold_builtin_logarithm): Likewise.
2989         (fold_builtin_1): Likewise.
2990         * convert.c (convert_to_integer): Likewise.
2991         * fold-const.c (negate_mathfn_p): Likewise.
2992         (tree_expr_nonnegative_p): Likewise.
2993
2994 2005-11-30  Dale Johannesen  <dalej@apple.com>
2995             Andrew Pinski  <pinskia@physics.uc.edu>
2996
2997         * combine.c (find_split_point):  Sign extend bitmask
2998         when changing bitfield assignment to IOR of AND.
2999
3000 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
3001
3002         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
3003         clobber to scratch reg.
3004         (*decrement_and_branch_until_zero_no_clobber): Remove.
3005         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
3006         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
3007         * config/ms1/ms1.opt (mmul): Remove.
3008         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
3009         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
3010
3011 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3012             Bernd Schmidt  <bernd.schmidt@analog.com>
3013
3014         * pa/predicates.md (symbolic_operand): Add comment.
3015         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
3016         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
3017         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
3018         (pa_secondary_reload_class): Delete.
3019         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
3020         and pa_secondary_reload_class.  Reorder some checks.  Update inline
3021         copy of symbolic operand.
3022         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
3023
3024 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
3025
3026         * loop-doloop.c (add_test): Only add jump notes if we did emit a
3027         jump.
3028
3029 2005-11-30  Jeff Law  <law@redhat.com>
3030
3031         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
3032         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3033
3034 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3035
3036         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
3037         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
3038         (ia64_expand_move): Adjust caller.
3039
3040         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
3041         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
3042         negate VAL.
3043
3044 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
3045
3046         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
3047         Always produce an output if we can remove NEGs or canonicalize
3048         (minus (minus ...)) expressions.  Provide a fast path for the
3049         two-operand case.
3050         (simplify_gen_binary): Do not call simplify_plus_minus.
3051         (simplify_binary_operation_1): Reassociate at the end of the
3052         function.
3053
3054 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
3055
3056         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
3057         moves and unpack to speed up.
3058
3059 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
3060
3061         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
3062         argument, they are always sparc_compare_op0 and sparc_compare_op1.
3063         (gen_v9_scc): Update callers.
3064         * config/sparc/sparc.md: Likewise.
3065         * config/sparc/sparc-protos.h: Update extern declaration.
3066
3067         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
3068
3069 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
3070
3071         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
3072         the if.
3073
3074 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
3075
3076         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
3077         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
3078         (negate_expr): Here.
3079
3080 2005-11-29  Ben Elliston  <bje@au.ibm.com>
3081
3082         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
3083         Fix typo in comment.
3084
3085 2005-11-29  Ben Elliston  <bje@au.ibm.com>
3086
3087         * Makefile.in (clean-target): Depend on clean-target-libgcc.
3088         (clean-target-libgcc): Import rule from the top-level Makefile.in.
3089
3090 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3091
3092         PR middle-end/20109
3093         PR middle-end/25120
3094         * builtins.c (init_target_chars): New.
3095         (expand_builtin_printf, expand_builtin_fprintf,
3096         expand_builtin_sprintf, fold_builtin_sprintf,
3097         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
3098         fold_builtin_snprintf_chk, fold_builtin_printf,
3099         fold_builtin_fprintf): Check for matching format strings using
3100         the target charset.
3101
3102 2005-11-29  Paul Brook  <paul@codesourcery.com>
3103
3104         * config.gcc: Do not use fixproto on m68k-elf.
3105
3106 2005-11-28  Roger Sayle  <roger@eyesopen.com>
3107
3108         * expmed.c (div_cost): Replace with...
3109         (sdiv_cost, udiv_cost): New.
3110         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
3111         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
3112         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
3113         (expand_divmod): Replace use of div_cost with either sdiv_cost
3114         or udiv_cost depending upon the signedness of the operation.
3115
3116 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
3117
3118         PR libfortran/24991
3119         * config/darwin.c (machopic_indirection_name,
3120         machopic_output_indirection): Follow transparent alias chain.
3121
3122 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
3123
3124         * varasm.c (ultimate_transparent_alias_target): Add comment.
3125
3126 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
3127
3128         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
3129         SET_SRC instead of XEXP where appropriate.
3130
3131 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
3132
3133         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
3134         __builtin_expect.
3135
3136 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
3137
3138         * config/fp-bit.h (LSHIFT): Take shift count parameter.
3139         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
3140         bit at a time.
3141
3142 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
3143
3144         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
3145         secondary_input_reload_class, made static.  Adapt to new
3146         infrastructure.
3147         (secondary_output_reload_class): Delete.
3148         (TARGET_SECONDARY_RELOAD): New macro.
3149         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
3150         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3151
3152 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
3153
3154         PR c++/21166
3155         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
3156         when its natural alignment is > BITS_PER_UNIT.
3157         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
3158         * c-common.c (handle_packed_attribute): Ignore packing on a field
3159         whose type is naturally char aligned.
3160
3161 2005-11-28  Richard Guenther  <rguenther@suse.de>
3162
3163         * c-common.c (strict_aliasing_warning): Handle all
3164         component-ref like accesses.
3165
3166 2005-11-28  Roger Sayle  <roger@eyesopen.com>
3167             Uros Bizjak  <uros@kss-loka.si>
3168
3169         PR middle-end/20219
3170         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
3171         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
3172         when flag_unsafe_math_optimizations is set and
3173         we don't care about NaNs or Infinities.
3174
3175         Move x/expN(y) and x/pow(y,z) transformation into common
3176         flag_unsafe_math_optimizations section.
3177
3178 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
3179
3180         * gcc.c (main): Change type of argv to "char **".
3181
3182 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
3183
3184         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
3185         small data sections.
3186         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
3187         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
3188         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
3189         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
3190         output locals to sbss if !rs6000_elf_in_small_data_p.
3191         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
3192
3193 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
3194
3195         PR target/24997
3196         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
3197         generated by reload.
3198         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
3199         indexed_or_indirect_address.
3200         (indexed_or_indirect_address): Don't test for base reg.  Call
3201         address_operand last.  Make it a special predicate.
3202
3203 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
3204
3205         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
3206
3207 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
3208
3209         PR middle-end/24575
3210         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
3211         is undefined.
3212         (negate_expr): Likewise.
3213
3214 2005-11-27  Andreas Schwab  <schwab@suse.de>
3215
3216         * config/m68k/m68k.c: Reindent and fix whitespace, remove
3217         redundant parens.
3218
3219 2005-11-27  Steven Bosscher  <stevenb@suse.de>
3220
3221         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
3222         has EH predecessor edges.
3223
3224 2005-11-26  Eric Christopher  <echristo@apple.com>
3225
3226         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
3227         register stalls by zero extending to the full register.
3228
3229 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
3230
3231         * config/floatunsisf.c, config/floatunsidf.c,
3232         config/floatunsixf.c, config/floatunsitf.c: New files.
3233         * config/ia64/t-hpux: Add floatunsitf.c.
3234         * config/ia64/ia64.c (ia64_init_libfuncs): Use
3235         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
3236
3237 2005-11-26  Richard Henderson  <rth@redhat.com>
3238
3239         * c-lex.c (pragma_lex): Rename from c_lex.
3240         * c-pch.c: Update for pragma_lex rename.
3241         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
3242         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
3243         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
3244         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
3245         * doc/tm.texi: Likewise.
3246
3247 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
3248
3249         PR middle-end/23669
3250         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
3251         when overflow is undefined.
3252
3253 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
3254
3255         * doc/md.texi (Insn Canonicalizations): Refer to the
3256         function commutative_operand_precedence for further rules.
3257
3258 2005-11-25  Roger Sayle  <roger@eyesopen.com>
3259
3260         PR middle-end/21309
3261         * expmed.c (choose_mult_variant): Return immediately when mult_cost
3262         is less than zero.  Limit mult_cost to a reasonable upper bound for
3263         the synthetic multiplication sequence.
3264
3265 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3266
3267         PR middle-end/25022
3268         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
3269         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
3270         Lookup the explicit replacement functions for any unlocked
3271         stdio builtin transformations.
3272
3273 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
3274
3275         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
3276         earlyclobber.
3277         * targhooks.c (default_secondary_reload): Don't require operand 2
3278         for an input reload to be earlyclobber.
3279
3280 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3281
3282         * fold-const.c (negate_mathfn_p): Fix comment and add support
3283         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
3284         BUILT_IN_ATANH.
3285
3286 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3287
3288         PR middle-end/24998
3289         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
3290         _Q_ulltoq for unsigned conversions from SImode and DImode to
3291         TFmode.
3292
3293 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
3294
3295         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
3296         (__floatundidf, __floatundisf): Likewise.
3297
3298 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
3299
3300         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
3301         (rs6000_override_options): Remove initialization of
3302         rs6000_sr_alias_set.
3303         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
3304         (rs6000_emit_stack_tie): Same.
3305         (emit_frame_save): Same.
3306         (gen_frame_mem_offset): Same.
3307         (rs6000_emit_prologue): Same.
3308         (rs6000_emit_epilogue): Same.
3309
3310 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3311
3312         PR middle-end/24989
3313         * fold-const.c (fold_build): Convert bool_var != 1 and
3314         bool_var == 0 to !bool_var.
3315
3316 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3317
3318         PR middle-end/24990
3319         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
3320         for C being INTEGER_CST.  Likewise for !=.
3321
3322 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3323
3324         PR middle-end/24998
3325         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
3326         unsigned conversions from SImode to TFmode.
3327
3328 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3329
3330         * expr.c (expand_expr_real_1): Fix error in last change.
3331
3332 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
3333
3334         * caller-save.c: (this_insn_sets): Move into:
3335         (save_call_clobbered_regs).
3336         (mark_set_regs): Get this_insn_sets from data.
3337
3338         (save_call_clobbered_regs): Take sets of the return value by
3339         sibcalls into account.
3340
3341 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
3342         PR target/21623:
3343
3344         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
3345         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
3346         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
3347         (memory_move_secondary_cost, init_reg_autoinc): Remove
3348         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
3349         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
3350         secondary_reload_class call.
3351         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
3352         callers.
3353         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
3354         (push_secondary_reload): Use secondary_reload target hook.
3355         (secondary_reload_class, scratch_reload_class): New functions.
3356         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
3357         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
3358         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
3359         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
3360         (secondary_reload_class, scratch_reload_class): Declare.
3361         * reload1.c: Include target.h.
3362         (reload_adjust_reg_for_temp): New function.
3363         (reload_adjust_reg_for_icode): Likewise.
3364         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
3365         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
3366         call.
3367         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
3368         for inheritance.  Support case when both secondary & tertiary reloads
3369         are for intermediate registers.
3370         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
3371         with secondary_reload_class call.  Support case when both secondary
3372         & tertiary reloads are for intermediate registers.
3373         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
3374         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
3375         * target.h (secondary_reload_info): New struct / typedef.
3376         (struct gcc_target): New member secondary_reload.
3377         * targhooks.c Include reload.h, optabs.h and recog.h.
3378         (default_secondary_reload): New function.
3379         * targhooks.h (default_secondary_reload): Declare.
3380         * doc/tm.texi: Document secondary_reload target hook.  Update
3381         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
3382         * doc/md.texi: Likewise.
3383
3384         * sh-protos.h (sh_secondary_reload): Declare.
3385         * sh.c (TARGET_SECONDARY_RELOAD): Override.
3386         (sh_secondary_reload): New function.
3387         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
3388         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3389         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3390         (HAVE_SECONDARY_RELOADS): Define.
3391         * sh.md (reload_indf): Rename to:
3392         (reload_indf__frn).
3393         (reload_outdf): Rename to:
3394         (reload_outdf__RnFRm).
3395         (reload_insf): Rename to:
3396         (reload_insf__frn).
3397         (reload_insi): Rename to:
3398         (reload_insi__i_fpul).
3399
3400 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
3401
3402         * configure.ac: Require at least texinfo 4.4.
3403         * configure: Regenerate.
3404
3405         * doc/install.texi (Tools/packages necessary for building GCC):
3406         Update required version of texinfo to at least 4.4.
3407         (Installing GCC: Building): Update required version of texinfo
3408         to at least 4.4.
3409         (Installing GCC: Final installation): Update required version
3410         of texi2dvi to at least 4.4.
3411         (Host/target specific installation notes for GCC): Update required
3412         version of texinfo to at least 4.4.
3413
3414 2005-11-24  Richard Guenther  <rguenther@suse.de>
3415         Dirk Mueller <dmueller@suse.de>
3416
3417         PR c++/14024
3418         * c-common.h (strict_aliasing_warning): Declare.
3419         * c-common.c (strict_aliasing_warning): New function,
3420         split out from ...
3421         * c-typeck.c (build_c_cast): ... here.
3422
3423 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3424
3425         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
3426         to order operands.
3427         (swap_commutative_operands_with_target): New.
3428
3429 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3430
3431         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
3432         also when doing PRE, rather than only for global CPROP.
3433
3434 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3435
3436         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
3437         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
3438         formatting.
3439         (expand_twoval_unop): Likewise.
3440         (widen_clz): Likewise.
3441         (expand_parity): Likewise.
3442         (expand_unop): Likewise.
3443         (emit_cmp_and_jmp_insn_1): Likewise.
3444         (prepare_float_lib_cmp): Likewise.
3445
3446 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3447
3448         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
3449         Remove unused `class' variable.
3450
3451 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3452
3453         PR c++/21667
3454         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
3455         C/C++ diagnostic function warn_array_subscript_with_type_char.
3456         * c-common.h (warn_array_subscript_with_type_char): Declare.
3457         * c-common.c (warn_array_subscript_with_type_char): Define.
3458
3459 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3460
3461         PR c/21668
3462         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
3463         compiling at the intersection of C and C++.
3464
3465 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
3466
3467         * doc/invoke.texi: For man pages, include gcc-vers.texi.
3468         List @file in the option summary.  Include the libiberty
3469         documentation for @file.
3470         * gcc.c (main): Call expandargv.
3471         * Makefile.in (gcc-vers.texi): Define srcdir.
3472
3473 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
3474
3475         * passes.c (init_optimization_passes): Document
3476         sequencing of passes.
3477
3478 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
3479
3480         * config/m68k/predicates.md (pcrel_address, extend_operator,
3481         post_inc_operand, pre_dec_operand): Remove redundant
3482         conditionals.
3483         (const_uint32_operand, const_sint32_operand): Use gcc_assert
3484         instead of abort.
3485         (valid_dbcc_comparison_p): Rewrite in the lisp style.
3486
3487 2005-11-23  Ben Elliston  <bje@au.ibm.com>
3488
3489         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
3490
3491 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
3492
3493         Preparatory work for PR target/21623:
3494         * alpha.c (secondary_reload_class): Rename to:
3495         (alpha_secondary_reload_class).
3496         * alpha.h, alpha-protos.h: Likewise.
3497         * mn10300.c (secondary_reload_class): Rename to:
3498         (mn10300_secondary_reload_class).
3499         * mn10300.h, mn10300-protos.h: Likewise.
3500         * pa.c (secondary_reload_class): Rename to:
3501         (pa_secondary_reload_class).
3502         * pa.h, pa-protos.h: Likewise.
3503         * rs6000.c (secondary_reload_class): Rename to:
3504         rs6000_secondary_reload_class.
3505         * rs6000.h, rs6000-protos.h: Likewise.
3506
3507 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
3508
3509         PR middle-end/22561
3510         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
3511
3512 2005-11-22  Ian Lance Taylor  <ian@airs.com>
3513
3514         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
3515         a mode_class.
3516         (prepare_cmp_insn): Likewise.
3517
3518 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
3519
3520         PR target/23435
3521         * m68k.md (zero_extendsidi2): Force operands[1] to a register
3522         if both operands[0] and operands[1] are memory.
3523
3524 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3525
3526         PR middle-end/23606
3527         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
3528         COMPARISON_CLASS_P and an integral types create create a new
3529         expression with the new type and fold that.
3530
3531 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3532
3533         PR target/24988
3534         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
3535         to SUBTARGET_OS_CPP_BUILTINS.
3536
3537 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3538
3539         * arm.c (emit_set_insn): New function.
3540         (arm_split_constant): Call it.
3541         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
3542         (arm_legitimize_address): Likewise.  Use plus_constant.
3543         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
3544         (thumb_expand_prologue): Likewise.
3545         (arm_gen_load_multiple): Use VOIDmode in SET.
3546         (arm_gen_store_multiple): Likewise.
3547         (vfp_emit_fstmx): Likewise.  Use plus_constant.
3548         (emit_multi_reg_push): Likewise.
3549         (emit_sfm): Use plus_constant.
3550
3551 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
3552
3553         PR target/24954
3554         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
3555         typo last change.
3556
3557 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3558
3559         PR middle-end/24950
3560         * expmed.c (store_bit_field): Don't attempt to insv a field
3561         larger than the reg.
3562
3563 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3564
3565         PR target/24954
3566         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
3567         explicit sign extension, not a (char) cast.
3568
3569 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3570
3571         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
3572         GET_MODE_CLASS (x) == MODE_FLOAT.
3573         * config/i386/i386.c: Likewise.
3574         * config/rs6000/xcoff.h: Likewise.
3575         * config/rs6000/linux64.h: Likewise.
3576         * config/rs6000/rs6000.c: Likewise.
3577         * config/rs6000/rs6000.h: Likewise.
3578         * config/rs6000/predicates.md: Likewise.
3579         * config/rs6000/sysv4.h: Likewise.
3580
3581 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3582
3583         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
3584         flag_pic is set.
3585
3586         * config/alpha/freebsd.h, config/alpha/linux.h,
3587         config/arm/linux-elf.h, config/bfin/bfin.h,
3588         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
3589         config/i386/beos-elf.h, config/i386/gnu.h,
3590         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
3591         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
3592         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
3593         config/rs6000/linux64.h, config/rs6000/sysv4.h,
3594         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
3595         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
3596         config/sparc/linux.h, config/sparc/linux64.h,
3597         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
3598
3599         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
3600         are both defined when either flag -fpic or -fPIC are used.
3601
3602 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3603
3604         * config/fp-bit.c (clzusi): New function.
3605         (si_to_float, usi_to_float): Use it to compute proper shift.
3606         (usi_to_float): Preserve guard bits when shifting right.
3607         * libgcc-std.ver (GCC_4.2.0): New version.
3608         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
3609         __floatundisf): New functions.
3610         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
3611         __floatundisf): Declare.
3612         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
3613         _floatundixf, and _floatunditf.
3614         * optabs.c (expand_float): If target does not define a pattern for
3615         signed or unsigned conversion, use an unsigned libcall instead of
3616         a signed one.
3617         (init_optabs): Initialize ufloat_optab.
3618
3619 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3620
3621         * config/rs6000/rs6000.opt (mmulhw): New option.
3622         * doc/invoke.texi (-mmulhw): Document.
3623         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
3624         for 405 and 440.
3625         * config/rs6000/rs6000.md: Add half-word multiply and
3626         multiply-accumulate instructions for 405 and 440.
3627
3628 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
3629
3630         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
3631         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
3632         default now includes a linker group which makes the RTEMS one nest.
3633
3634 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3635
3636         * cse.c (fold_rtx): Typo fix.
3637         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
3638
3639 2005-11-21  Richard Henderson  <rth@redhat.com>
3640
3641         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
3642         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
3643
3644         * c-tree.h (lookup_name): Move declaration ...
3645         * c-common.h (lookup_name): ... here.
3646         * config/darwin-c.c: Include c-common.h.
3647         * config/t-darwin: Update dependencies.
3648
3649 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3650
3651         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
3652         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
3653         * genopinit.c (gen_insn): Likewise.
3654         * reload.c (find_equiv_reg): Likewise.
3655         * loop.c (load_mems): Likewise.
3656         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
3657         * cse.c (find_comparison_args, fold_rtx): Likewise.
3658         * dwarf2out.c (add_const_value_attribute): Likewise.
3659         * expr.c (convert_move): Likewise.
3660         * recog.c (general_operand, register_operand): Likewise.
3661         * reg-stack.c (replace_reg): Likewise.
3662         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3663         * c-common.c (handle_vector_size_attribute): Likewise.
3664         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3665         (simplify_binary_operation_1): Likewise.
3666         (simplify_const_binary_operation): Likewise.
3667         (simplify_relational_operation): Likewise.
3668         (simplify_const_relational_operation): Likewise.
3669         (simplify_immed_subreg): Likewise.
3670         * emit-rtl.c (gen_lowpart_common): Likewise.
3671         * expmed.c (expand_mult): Likewise.
3672         * stor-layout.c (layout_type): Likewise.
3673
3674 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
3675
3676         PR target/24951
3677         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
3678         cst2 only for SPE vectors.
3679
3680 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
3681
3682         PR target/24953
3683         * config/rs6000/predicates.md (vrsave_operation): Check
3684         UNSPEC_VOLATILE value.
3685
3686 2005-11-21  Jan Hubicka  <jh@suse.cz>
3687
3688         PR tree-optimization/24653
3689         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
3690
3691 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3692
3693         * config/i386/predicates.md (ax_reg_operand): New predicate.
3694         (memory_displacement_only_operand): New predicate.
3695         * config/i386/i386.md ("modrm" attribute): Return 0 if one
3696         operand is AX register and the other operand is memory operand
3697         with displacement only.
3698
3699 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3700
3701         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
3702         if we don't care about NaNs or Infinities.
3703
3704 2005-11-20  Ian Lance Taylor  <ian@airs.com>
3705
3706         PR rtl-optimization/24883
3707         * combine.c (combinable_i3pat): When checking whether the
3708         destination of i3 is used in i3, consider paradoxical subregs.
3709
3710 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
3711
3712         PR middle-end/20583
3713         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
3714
3715 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
3716
3717         * combine.c (try_combine): Do not run subst on i1src and i2src in
3718         the case of generating a PARALLEL for a comparison.
3719
3720 2005-11-20  Richard Henderson  <rth@redhat.com>
3721
3722         PR 24931
3723         * tree-sra.c (struct sra_elt): Add all_no_warning.
3724         (struct sra_walk_fns) <use>: Add use_all argument.
3725         (sra_walk_expr): Pass it.
3726         (sra_walk_modify_expr): Likewise.
3727         (scalarize_ldst): Likewise.
3728         (scan_use): Update for new argument.
3729         (mark_no_warning): New.
3730         (scalarize_use): Use it.
3731
3732 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
3733
3734         * expr.c (expand_expr_real): Use usmul_optab for widening
3735         signed * unsigned multiplies.
3736         * genopinit.c (optabs): Add usmul_widen_optab.
3737         * optabs.c (init_optabs): Likewise.
3738         * optabs.h (enum optab_index): Add OTI_usmul_widen.
3739         (usmul_widen_optab): Define.
3740         * config/bfin/bfin.md (usmulhisi3): New pattern.
3741
3742         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
3743
3744 2005-11-20  Graham Stott <btinternet.com>
3745
3746         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
3747
3748 2005-11-20  Andreas Schwab  <schwab@suse.de>
3749
3750         PR target/24757
3751         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
3752         insn.
3753
3754 2005-11-19  Richard Henderson  <rth@redhat.com>
3755
3756         PR tree-opt/24665
3757         * tree-gimple.c (is_gimple_id): Export.
3758         * tree-gimple.h (is_gimple_id): Declare.
3759         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
3760         (get_default_value): Use it.
3761         (maybe_fold_stmt_indirect): Likewise.
3762
3763 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
3764
3765         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
3766         than VR1 or vice-versa.
3767
3768 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
3769
3770         PR middle-end/24912
3771         PR middle-end/24750
3772         * reload.c (find_reloads_address_1): Mention dependency on
3773         gen_reload.
3774         * reload1.c (gen_reload): For IN with an unary operation, try
3775         moving inner expression to OUT if trivial SET is not valid.
3776         Confirm that the result is valid.  Move common code block into...
3777         (emit_insn_if_valid_for_reload): New function.
3778
3779 2005-11-19  Richard Guenther  <rguenther@suse.de>
3780
3781         * fold-const.c (fold_indirect_ref_1): Make sure we fold
3782         ARRAY_REFs of constant strings.
3783
3784 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
3785
3786         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
3787         fatal format string.
3788
3789 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
3790
3791         * combine.c (make_compound_operation): Swap operands of
3792         commutative operation if necessary before returning.
3793
3794 2005-11-19  Richard Guenther  <rguenther@suse.de>
3795
3796         PR middle-end/23294
3797         * fold-const.c (fold_plusminus_mult_expr): New function.
3798         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
3799         cases, remove now unnecessary code.
3800
3801 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
3802
3803         * gensupport.c (old_preds): Rename to std_preds, add special field.
3804         (struct old_pred_table): Rename to struct std_pred_table, add special
3805         field.
3806         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
3807         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
3808         (init_predicate_table): Adjust, and set along the way whether a
3809         predicate is special.
3810
3811 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
3812
3813         * BASE-VER: Change to 4.2.0.
3814
3815 2005-11-18  James E Wilson  <wilson@specifix.com>
3816
3817         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
3818         returning it.
3819
3820 2005-11-18  Mike Stump  <mrs@apple.com>
3821
3822         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
3823         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3824         * c-decl.c (lookup_name_two) Remove.
3825         * c-tree.h (lookup_name_two): Remove.
3826         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3827         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
3828         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
3829         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
3830
3831 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
3832
3833         PR target/24914
3834         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
3835         when not generating code to use that co-processor.
3836
3837 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
3838
3839         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
3840         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
3841         these functions are now in tree-phinodes.c.
3842
3843 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
3844
3845         * config/bfin/bfin.md (trap): New pattern.
3846
3847 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3848
3849         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
3850         on types.
3851
3852         * expr.c (expand_expr_real): Don't call record_block_change unless
3853         ib_boundaries_block is non-null
3854
3855         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
3856
3857         * fold-const.c (build_range_check): Use proper type for subtraction
3858         when merging lower bound.
3859
3860 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3861
3862         PR rtl-optimization/24497
3863         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
3864         the copied insn.
3865
3866 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3867
3868         * tree-scalar-evolution.c (expression_expensive_p): New function.
3869         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
3870
3871 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
3872
3873         * config/bfin/crtlibid.s: New file.
3874
3875 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3876
3877         PR target/24348
3878         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3879         when not using sjlj exceptions.
3880         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3881         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3882         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3883         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3884         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3885         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3886         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3887         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3888         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3889         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3890         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3891         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3892         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3893         defines.
3894         * config/pa/hpux-unwind.h: New file.
3895
3896 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
3897
3898         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3899         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3900         * varasm.c (do_assemble_alias): Adjust call.
3901         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3902         is defined.
3903         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3904
3905 2005-11-17  James E Wilson  <wilson@specifix.com>
3906
3907         * tree.def (FUNCTION_DECL): Correct typo in comment.
3908
3909 2005-11-17  Richard Henderson  <rth@redhat.com>
3910
3911         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3912         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3913         and DW_CFA_def_cfa_sf.
3914         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3915         (dbx_reg_number): Don't assert particular registers here.
3916         (based_loc_descr): ... do it here instead.  Fold in ...
3917         (eliminate_reg_to_offset): ... this function.
3918         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3919         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3920         * unwind-dw2.c (execute_cfa_program): Apply data align factor
3921         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3922         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3923         (instantiate_virtual_regs): Likewise.
3924         * var-tracking.c (adjust_stack_reference): Likewise.
3925         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3926
3927 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3928
3929         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3930         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3931         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3932         crtlibid.o.
3933         ($(T)crtlibid.o): New rule.
3934
3935 2005-11-16  Richard Guenther  <rguenther@suse.de>
3936
3937         PR middle-end/24851
3938         * fold-const.c (extract_array_ref): Return byte offset
3939         in all cases.
3940         (fold_binary): Fold &x[a] CMP &x[b] to
3941         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3942         behavior.
3943
3944 2005-11-16  Richard Henderson  <rth@redhat.com>
3945
3946         PR middle-end/23497
3947         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3948         parts of an SSA_NAME.
3949
3950 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
3951
3952         PR target/24861
3953         * arm.md (split for movsf with immediate): Restrict split to insns
3954         that set a general register.
3955
3956 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3957
3958         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
3959         uw_update_context.
3960         * unwind-dw2.c (uw_advance_context): Likewise.
3961         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
3962         _Unwind_SjLj_Unregister.
3963         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3964
3965 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3966
3967         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3968
3969 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3970
3971         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3972         langhook to get a DImode integer type.
3973
3974 2005-11-16  Richard Henderson  <rth@redhat.com>
3975             J"orn Rennecke <joern.rennecke@st.com>
3976             Ulrich Weigand  <uweigand@de.ibm.com>
3977
3978         PR rtl-opt/24160
3979         PR target/24621
3980         * reload1.c (reg_equiv_invariant): New.
3981         (reload): Allocate, initialize, and free it.
3982         (calculate_needs_all_insns): Check it when skipping equivalence
3983         setting insns.
3984         (alter_reg): Likewise.
3985         (eliminate_regs_1): Rename from eliminate_regs.  Add new
3986         may_use_invariant argument; only use reg_equiv_invariant when true.
3987         (eliminate_regs): New.
3988         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3989         a context for which may_use_invariant may be true.
3990
3991 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3992
3993         * fold-const.c (const_binop): Don't constant fold the operation
3994         if the result has overflowed and flag_trapping_math.
3995         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3996
3997 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3998
3999         * config/arm/unwind-arm.c (abort): Add prototype here.
4000         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
4001         (struct phase1_vrs): Add prev_sp.
4002         (unwind_phase2_forced): Save the original core registers instead of
4003         modifying entry_vrs.  Take a new flag argument for resuming unwinding
4004         and set action flags accordingly.  Always set _US_END_OF_STACK when
4005         get_eit_entry fails.  Unwind before calling the stop function.
4006         (_Unwind_GetCFA): New function.
4007         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
4008         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
4009         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
4010         just call unwind_phase2_forced.
4011         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
4012         * config/arm/unwind-arm.h (abort): Remove prototype.
4013         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
4014         prototypes.
4015         (_Unwind_GetCFA): New prototype.
4016         * config/arm/pr-support.c (abort): Add prototype here.
4017         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
4018         forced unwinding.
4019         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
4020         not schedule the prologue with non-call exceptions and EABI.
4021
4022 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
4023
4024         * config/arm/unwind-arm.h: Reorder interface function declarations.
4025         (_URC_END_OF_STACK): New enumeration value.
4026         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
4027         (struct _Unwind_Control_Block): Document reserved field use.
4028         (_Unwind_Stop_Fn): New typedef.
4029         (_Unwind_ForcedUnwind): Declare.
4030         (_Unwind_Resume_or_Rethrow): Declare.
4031         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
4032         argument.  Adjust.
4033         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
4034         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
4035         (UCB_FORCED_STOP_ARG): New.
4036         (search_EIT_table): Update boundary condition checks.
4037         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
4038         (unwind_phase2): Replace for with do..while.
4039         (unwind_phase2_forced): New.
4040         (__gnu_Unwind_RaiseException): Replace for with do..while.
4041         (__gnu_Unwind_ForcedUnwind): New.
4042         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
4043         Use appropriate phase2 unwinder.
4044         (__gnu_Unwind_Resume_or_Rethrow): New.
4045         (__gnu_unwind_pr_common): Cope with forced unwinding.
4046
4047 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
4048
4049         PR target/24772
4050         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
4051
4052         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
4053         roundsf2): Remove "s" from mnemonic.
4054
4055 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
4056
4057         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
4058         __PIC__ is defined.
4059         * config/bfin/crtn.s: Change epilogues to match.
4060         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
4061         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
4062         __PIC__ and __pic__.
4063
4064 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
4065
4066         PR 24357
4067         * doc/invoke.texi: Distinguish between free and fixed form instead of
4068         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
4069         languages.
4070         * gcc.c (default_compilers): Remove double entries, add entries for
4071         suffixes '.F90' and '.F95'.
4072
4073 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
4074
4075         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
4076         in the stack probing loop.
4077
4078 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
4079
4080         * configure.ac: Use .machine power5 not power5x.
4081         * configure: Regenerate.
4082
4083 2005-11-15  Mike Stump  <mrs@apple.com>
4084
4085         * c-decl.c (lookup_name_two): Add.
4086         * c-tree.h (lookup_name_two): Likewise.
4087         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
4088         * config/darwin-c.c (darwin_pragma_unused): Likewise.
4089
4090 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
4091
4092         PR rtl-optimization/23392
4093         * regrename.c (enum scan_actions) Add mark_access.
4094         (scan_actions_name): Ditto.
4095         (scan_rtx_reg): Handle mark_access.
4096         (scan_rtx_address): Do nothing for mark_access.
4097         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
4098         and regs in REG_INC notes before closing chains for dead regs.
4099         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
4100         opening chains for new writes.
4101
4102 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
4103
4104         * c.opt (ffixed-line-length-none): New.
4105
4106 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
4107
4108         * mklibgcc.in: Change contents of eh_dummy.c.
4109
4110 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
4111
4112         * loop.c (scan_loop): Do not insert temporaries for hard registers.
4113
4114 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
4115
4116         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
4117         of making syscalls.
4118         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
4119
4120 2005-11-15  Jan Hubicka  <jh@suse.cz>
4121
4122         * invoke.texi (large-unit-insns): Document.
4123         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
4124         * params.def (large-unit-insns): New param.
4125
4126 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
4127
4128         PR target/24869
4129         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
4130         special register for operand 3.  Reindent constraints to align
4131         them vertically.
4132
4133 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
4134
4135         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
4136         -mpopcntb, -mfprnd. Add -mcpu=power5+.
4137         * configure.ac: Add test for FP rounding instructions.
4138         * configure: Regenerate.
4139         * config.in: Regenerate.
4140         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4141         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
4142         features enabled.
4143         * config/rs6000/rs6000.opt (mfprnd): New.
4144         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
4145         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
4146         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
4147         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
4148         (TARGET_FPRND): New.
4149         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
4150         UNSPEC_FRIZ): New.
4151         (btrunc<mode>2): New.
4152         (ceil<mode>2): New.
4153         (floor<mode>2): New.
4154         (round<mode>2): New.
4155
4156 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
4157
4158         * gcc.c (version_compare_spec_function): Use fatal() rather than
4159         abort().
4160
4161         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
4162         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
4163         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
4164         as empty.
4165         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
4166         link in crt2.o.
4167
4168         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
4169         on -mmacosx-version-min setting.
4170
4171 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
4172
4173         PR 24840
4174         * tree-vrp.c (infer_value_range): Return false if STMT is a
4175         block terminator and its basic block has no successors.
4176
4177 2005-11-14  Mike Stump  <mrs@apple.com>
4178
4179         * config/i386/i386.c (override_options): -masm=intel isn't
4180         supported on darwin.
4181         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
4182
4183 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
4184
4185         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
4186         vfork after including auto-host.h.
4187
4188 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
4189
4190         PR rtl-optimization/22002
4191         * combine.c (distribute_notes): Detect cases where a reg dies
4192         two or more times in a bb, including on the insn we are combining,
4193         and place the death note on the correct range.
4194
4195 2005-11-14  Dale Johannesen  <dalej@apple.com>
4196
4197         * expmed.c (store_bit_field):  Add offset unconditionally for
4198         memory targets.
4199         (extract_bit_field):  Don't force extzv or extv operand into
4200         a register if field is too big.
4201
4202 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
4203
4204         * config/arm/arm.c (pic_labelno): New.
4205         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
4206         LABEL_REF.  Pass only the labelno to PIC insns.
4207         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
4208         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
4209         * arm.md (UNSPEC_PIC_LABEL): New constant.
4210         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
4211         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
4212         Use the correct label prefix.
4213
4214 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
4215
4216         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
4217         REQ_EQUIV note.
4218
4219 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
4220
4221         * loop-invariant.c: Include tm_p.h.
4222         * Makefile.in: Updated.
4223
4224 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4225
4226         * pa.c (store_reg): Revise generation of frame notes in large frames.
4227         (set_reg_plus_d): Likewise.
4228
4229 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
4230
4231         PR tree-optimization/24709
4232         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
4233         loop check.
4234
4235 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4236
4237         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
4238         and duplicate declaration of pthread_self.
4239
4240 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4241             Ian Lance Taylor  <ian@airs.com>
4242
4243         PR middle-end/24003
4244         * calls.c (expand_call): If TARGET is a MEM and some part of the
4245         argument area has been saved, force TARGET to a register.
4246
4247 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
4248
4249         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
4250         checking.
4251
4252 2005-11-13  Jason Merrill  <jason@redhat.com>
4253
4254         PR c++/22489
4255         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
4256         lazily declared methods.
4257         (force_decl_die): Stop if forcing out the context already make a
4258         DIE for the decl.
4259         (force_type_die): Likewise.
4260
4261 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
4262
4263         PR middle-end/24820
4264         * builtins.c (integer_valued_real_p): Add break in
4265         REAL_CST having TREE_OVERFLOW set.
4266
4267 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
4268
4269         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
4270         addressing modes during calculation of costs.
4271
4272 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4273
4274         * function.c (assign_stack_local_1): Restrict sanity check
4275         on frame size overflow to 32-bit and above platforms.
4276
4277 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4278
4279         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
4280         * config/cris/cris.c: Include reload.h.
4281         (cris_initial_elimination_offset): New function.
4282         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
4283         Prototype.
4284
4285 2005-11-12  Richard Guenther  <rguenther@suse.de>
4286
4287         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
4288
4289 2005-11-12  Jan Hubicka  <jh@suse.cz>
4290
4291         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
4292         to compare against 0 when possible.
4293
4294 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
4295
4296         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
4297         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
4298         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
4299         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
4300         in the new order.
4301
4302 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4303
4304         * recog.c (constrain_operands) <case 'g'>: For a match, require
4305         that a non-register matches general_operand when strict >= 0.
4306
4307 2005-11-11  Steven Bosscher  <stevenb@suse.de>
4308
4309         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
4310         previous checkin.
4311
4312 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
4313
4314         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
4315         (memory_address_same): New.
4316         (dse_optimize_stmt): Call memory_address_same.
4317
4318 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4319
4320         PR middle-end/24750
4321         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
4322         ZERO_EXTEND>: New cases.
4323
4324 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
4325
4326         * longlong.h (__clz_tab): Always provide.
4327
4328 2005-11-11  Steven Bosscher  <stevenb@suse.de>
4329
4330         PR 24265
4331         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
4332         can be assigned to.
4333         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
4334         before check_maybe_invariant.
4335         (move_invariant_reg): Use gen_move_insn instead of replacing
4336         SET_DEST with the temporary for the invariant.
4337         (move_loop_invariants): If checking is enabled, do internal
4338         consistency checks after completing the pass.
4339
4340 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
4341
4342         PR 24644
4343         * common.opt (Wvolatile-register-var): New.
4344         * varasm.c (make_decl_rtl): Only emit warning when option
4345         specified.  Clarify warning message.
4346         * doc/invoke.texi (Wvolatile-register-var): Document new option.
4347
4348         * doc/md.texi (copysign): Document standard named pattern.
4349
4350 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
4351
4352         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
4353         bytes when align is 2.
4354         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
4355         by the first instruction of the loop.
4356
4357 2005-11-11  Jason Merrill  <jason@redhat.com>
4358
4359         PR c++/24686
4360         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
4361         the cleanup list.
4362
4363 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
4364
4365         PR rtl-optimization/22509
4366         * local-alloc.c (memref_used_between_p): Check whether a function call
4367         could not reference the memref.
4368
4369 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
4370
4371         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
4372         algorithm so as to choose the best, not the worst, alternative.
4373         Reset accumulated register class before processing next alternative.
4374
4375 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4376
4377         PR target/24445
4378         * calls.c (expand_call): Copy a return value to a plain register
4379         if needed.
4380
4381 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
4382
4383         PR target/24778
4384         * varasm.c (assemble_name): Recompute name only for transparent
4385         aliases.
4386
4387 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
4388
4389         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
4390
4391 2005-11-04  Jeff Law  <law@redhat.com>
4392
4393         PR middle-end/23181
4394         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
4395         perform reassociation if the parent statement will not die as
4396         a result of the optimization.
4397
4398 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
4399
4400         * tree-ssa-alias.c (compute_may_aliases): Remove call to
4401         delete_old_heap_vars.
4402         * tree-dfa.c (referenced_var_remove): Remove function.
4403         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
4404         (delete_tree_ssa): Remove call to delete_old_heapvars.
4405         Add call to delete_alias_heapvars.
4406         * tree-flow.h (referenced_var_remove): Remove prototype
4407         (init_alias_heapvars): New prototype.
4408         (delete_alias_heapvars): Ditto.
4409         * Makefile.in (tree-ssa-structalias.o): Add
4410         gt-tree-ssa-structalias.o
4411         (GTFILES): Add tree-ssa-structalias.h and
4412         tree-ssa-structalias.c.
4413         (s-gtype): Add gt-tree-ssa-structalias.h.
4414         * tree-ssa-structalias.c (heapvars): Remove.
4415         (oldheapvars): Remove.
4416         (heapvar_for_stmt): New variable.
4417         (heapvar_lookup): New function.
4418         (heapvar_insert): Ditto.
4419         (get_constraint_for): See if we have an old heapvar
4420         to reuse.
4421         (init_alias_heapvars): New function.
4422         (delete_alias_heapvars): Ditto.
4423         Add include of gt-tree-ssa-structalias.h.
4424
4425 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4426
4427         PR middle-end/22127
4428         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
4429
4430 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4431
4432         * tree.c (int_fits_type_p): Only look at the base type
4433         if it has the same precision as the original type.
4434
4435 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
4436
4437         PR other/4372
4438         * varasm.c (assemble_alias): Use %q+D in the error
4439         message instead of %J and %qD.
4440
4441 2005-11-10  Richard Guenther  <rguenther@suse.de>
4442
4443         * gcse.c (free_ldst_entry): Only free hashtable if
4444         it exists.
4445
4446 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4447
4448         * function.c (assign_stack_local_1): Issue an error message if
4449         the frame size overflows in the signed target arithmetics.
4450
4451 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4452
4453         * tree.c (build_qualified_type): Chain the new type to the original
4454         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
4455         a POINTER_TYPE or a REFERENCE_TYPE respectively.
4456         (build_pointer_type_for_mode): Only return unqualified types.
4457         (build_reference_type_for_mode): Likewise.
4458
4459 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4460
4461         * Makefile.in (gnucompare): Do comparison of all files using one of
4462         the chosen methods and only afterwards decide if just warning should
4463         be issued or comparison failure raised.
4464
4465 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4466
4467         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
4468         (noce_try_abs): Negate if the comparison is reversed.
4469         Look only one instruction backwards for a REG_EQUAL note.
4470
4471 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4472
4473         PR other/4372
4474         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
4475         gthr-tpf.h: Define __gthrw.  For all identifiers that might
4476         be weak, introduce weakrefs or non-weak aliases with __gthrw,
4477         and prefix all uses with __ghtrw.
4478
4479 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4480
4481         PR other/4372
4482         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
4483         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
4484         * c-common.c (handle_weakref_attribute): New.
4485         (c_common_attribute_table): Add weakref.
4486         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
4487         in the assembler.
4488         * configure, config.in: Rebuilt.
4489         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
4490         * doc/extend.texi: Document weakref attribute.
4491         * varasm.c (ultimate_transparent_alias_target): New
4492         (assemble_name): Use it.
4493         (weak_finish_1): Split out of...
4494         (weak_finish): ... and deal with weakrefs in...
4495         (weakref_targets): ... new list.
4496         (globalize_decl): Clean up weakref_targets.
4497         (do_assemble_alias): Handle weakrefs.
4498         (finish_aliases_1): Do not reject weakrefs to external symbols.
4499         (assemble_alias): Handle weakrefs.
4500
4501 2005-11-09  Richard Guenther  <rguenther@suse.de>
4502
4503         PR tree-optimization/24716
4504         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
4505         t_bool to track results from follow_ssa_edge.
4506
4507 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4508
4509         * final.c (force_source_line): New global variable.
4510         (final_scan_insn): Set it to true instead of clearing last_filename.
4511         (notice_source_line): Return true if force_source_line is true,
4512         unless source info is absent.
4513
4514 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
4515
4516         PR c/24644
4517         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
4518         a linkage name for a variable if it a register variable.
4519         * c-decl.c (grokdeclarator): Global register variables
4520         should be set as PUBLIC.
4521
4522 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4523
4524         PR 24624
4525         * config/s390/s390.c (struct s390_frame_layout): New fields
4526         first_save_gpr_slot and last_save_gpr_slot.
4527         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
4528         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
4529         first_save_gpr and last_save_gpr with the _slot variants.
4530         (s390_register_info): Calculate first_save_gpr_slot and
4531         last_save_gpr_slot using regs_ever_live.
4532
4533 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4534
4535         PR 24623
4536         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
4537         for a function containing a landing pad.
4538
4539 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4540
4541         PR 24034
4542         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
4543         is live afterwards.
4544
4545 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
4546
4547         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
4548         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
4549
4550 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4551
4552         Add ms2 support
4553         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
4554         constants.
4555         (call,load,store): New insn types.
4556         (mem_access, branch_access): Adjust reservation conditions.
4557         (define_delay): Adjust condition.
4558         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
4559         type.
4560         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
4561         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
4562         insn type.
4563         (call_internal, call_value_internal, return_internal,
4564         return_interrupt_internal, eh_return_internal, indirect_jump,
4565         tablejump): Set call insn type.
4566         (blockage, ei, di): Use appropriate unspec const.
4567         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
4568         (ms1_get_attr_type): Adjust to give load & store types.
4569         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
4570         backwards past a barrier.
4571         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
4572         branch scheduling.
4573         (struct branch_info, struct label_info): New.
4574         (ms1_labels): New.
4575         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
4576         (ms1_machine_reorg): New.
4577         (TARGET_MACHINE_DEPENDENT_REORG): Override.
4578         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
4579         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
4580         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
4581         (TARGET_MS2): New.
4582
4583 2005-11-09  Per Bothner  <per@bothner.com>
4584             Uros Bizjak  <uros@kss-loka.si>
4585
4586         PR c/24101
4587         * toplev.c (process_options): Initialize debug_hooks early
4588         in case lang_hooks.post_options ends up calling a debug_hook.
4589
4590 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
4591
4592         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
4593         DBX_REGISTER_NUMBER being contiguous.
4594
4595 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
4596             Diego Novillo  <dnovillo@redhat.com>
4597
4598         PR 23046
4599         * tree-vrp.c (register_edge_assert_for): Do not register
4600         always-false predicates.
4601
4602 2005-11-08  Devang Patel <dpatel@apple.com>
4603
4604         PR tree-optimization/23115
4605         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
4606         relation.
4607
4608 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
4609
4610         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
4611         -mcpu=440.
4612
4613 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
4614
4615         Fix PR tree-optimization/23382
4616
4617         * tree-ssa-alias.c (compute_may_aliases): Call
4618         delete_old_heap_vars.
4619         * tree-dfa.c (referenced_var_remove): New function.
4620         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
4621         * tree-flow.h (referenced_var_remove): Add prototype.
4622         (delete_old_heap_vars): Ditto.
4623         * tree-ssa-structalias.c (heapvars): New variable.
4624         (oldheapvars): Ditto.
4625         (get_constraint_for): Put heap vars on heapvars list.
4626         (delete_old_heap_vars): New function.
4627
4628 2005-11-08  Jason Merrill  <jason@redhat.com>
4629
4630         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
4631
4632 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
4633
4634         PR target/19340
4635         * reg-stack.c (reg_to_stack): Update register liveness also
4636         for flag_sched2_use_traces.
4637
4638 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
4639
4640         PR target/23704
4641         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
4642         override prior explicit -mno-powerpc-gfxopt.
4643
4644 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4645
4646         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
4647         if the bitsize is zero.
4648         * doc/md.texi (Standard Pattern Names): Document it.
4649
4650         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
4651         (TARGET_PASS_BY_REFERENCE): Likewise.
4652
4653 2005-11-07  Ian Lance Taylor  <ian@airs.com>
4654
4655         PR rtl-optimization/24683
4656         * config/i386/i386.c (legitimize_pic_address): If constant operand
4657         to PLUS is too large, put it in a register.
4658
4659 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
4660
4661         * configure.ac: Enable checking assembler dwarf2 support for bfin
4662         target.
4663         * configure: Regenerate.
4664
4665 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4666
4667         PR target/24230
4668
4669         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
4670         gen_easy_vector_constant_add_self): Delete.
4671         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
4672         New.
4673         (output_vec_const_move): Use gen_easy_altivec_constant.
4674         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
4675         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
4676         (easy_vector_constant_add_self): Rewritten.
4677         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
4678         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
4679         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
4680         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
4681         Macroize and adjust for the other changes.
4682
4683 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4684
4685         PR c/24599
4686
4687         * c-typeck.c (build_c_cast): Try using a shared constant, and see
4688         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
4689
4690 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4691
4692         PR rtl-optimization/23567
4693         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
4694         (noce_process_if_block): Don't do any optimizations except
4695         if (cond) x = x; if !set_b and write into orig_x may trap
4696         or fault.  Remove the MEM_READONLY_P check.
4697
4698 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
4699
4700         PR 24670
4701         * tree-vrp.c (fix_equivalence_set): New.
4702         (extract_range_from_assert): Call it.
4703
4704 2005-11-05  Ian Lance Taylor  <ian@airs.com>
4705
4706         PR target/22432
4707         * combine.c (apply_distributive_law): Don't distribute across a
4708         vector mode subreg.
4709
4710 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
4711
4712         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
4713         config/ms1/ms1.h, config/rs6000/predicates.md,
4714         config/s390/s390.c, params.def, postreload-gcse.c,
4715         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
4716         tree-vrp.c, tree.c: Fix comment typos.
4717         * doc/invoke.texi: Fix typos.
4718
4719 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
4720
4721         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
4722         for testing whether the data_dependence_relation contains distance
4723         vectors.  Iterate over all distance vectors of the ddr.
4724         * lambda.h: Define a vec of lambda_vector pointers.
4725         * tree-data-ref.c (dump_data_dependence_relation,
4726         dump_data_dependence_direction): Iterate over all distance and
4727         direction vectors of the ddr.
4728         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
4729         DDR_DIST_VECTS.
4730         (build_classic_dist_vector, build_classic_dir_vector): Push a set
4731         of distance/direction vectors instead of a single one.
4732         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
4733         lambda_vectors with a vec of lambda_vectors.
4734         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
4735         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
4736         DDR_NUM_DIST_VECTS): New.
4737         * tree-loop-linear.c (gather_interchange_stats): Test for the
4738         existence of distance vectors only after having checked that there
4739         is a dependence.  Iterate over all distance vectors of the ddr.
4740         (linear_transform_loops): Use dump_data_dependence_relation.
4741         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
4742         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
4743         distance vectors of the ddr.
4744
4745 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4746
4747         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
4748         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
4749         IS_INTHANDLER; all callers changed.
4750         (n_regs_saved_by_prologue): Take interrupt handler attributes into
4751         account.
4752         (do_link, do_unlink): New argument ALL; all callers changed.
4753         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
4754         If function isn't leaf, save and restore all registers.
4755         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
4756         exception handler.
4757
4758 2005-11-05  Jan Hubicka  <jh@suse.cz>
4759
4760         PR rtl-optimization/23490
4761         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
4762         max-flow-memory-location): Document.
4763         * flow.c: Include params.h
4764         (MAX_MEM_SET_LIST_LEN): Kill.
4765         (add_to_mem_set_list): Use new param.
4766         * cse.c (cse_basic_block): Replace 1000 by new param.
4767         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
4768         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
4769         * predict.c (predict_loops): Use new param.
4770         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
4771
4772         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
4773         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
4774         Do not hold memory returned by cgraph_node_name across other call.
4775
4776 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
4777
4778         PR target/23424
4779         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
4780         Disable.
4781
4782 2005-11-04  Jeff Law  <law@redhat.com>
4783
4784         PR/21883
4785         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
4786         * tree-ssa-dom.c: Include params.h.
4787         (thread_across_edge): If there are too many statements in the
4788         target block, then do not thread through it.
4789         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
4790         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
4791
4792 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
4793
4794         PR 24627
4795         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
4796         TODO_update_ssa instead of TODO_update_ssa_no_phi.
4797
4798 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
4799
4800         PR/18595
4801         * tree-scalar-evolution.c (instantiate_parameters_1,
4802         instantiate_parameters, resolve_mixers): Compute the size of an
4803         expression to be instantiated and give up the instantiation if the
4804         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
4805
4806 2005-11-04  Richard Guenther  <rguenther@suse.de>
4807
4808         * tree-flow.h (ref_contains_indirect_ref): Rename to
4809         array_ref_contains_indirect_ref.
4810         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
4811         (array_ref_contains_indirect_ref): Make comment match the code
4812         and vice-versa.
4813         (ref_contains_array_ref): Likewise.
4814         * tree-ssa-structalias.c (find_func_aliases): Remove call to
4815         ref_contains_indirect_ref.
4816         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4817         Rename calls to ref_contains_indirect_ref.
4818
4819 2005-11-04 Paul Brook  <paul@codesourcery.com>
4820
4821         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
4822         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
4823         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
4824         * config/arm/arm.md: Use match_operand in peephole input templates
4825         and match_dup in peephole output templates.
4826
4827 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4828
4829         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
4830         __aeabi_uidiv.
4831
4832 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
4833             Daniel Jacobowitz  <dan@codesourcery.com>
4834
4835         * longlong.h (add_ssaaaa): Clobber condition code register
4836         in ARM version.
4837         (sub_ddmmss): Likewise.
4838         (umul_ppmm): Likewise.
4839
4840 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4841             Paul Brook  <paul@codesourcery.com>
4842             Phil Blundell  <pb@reciva.com>
4843
4844         * configure.ac: Add test for ARM TLS support.
4845         * configure: Regenerated.
4846         * config/arm/arm-protos.h (legitimize_tls_address)
4847         (arm_tls_referenced_p, tls_mentioned_p)
4848         (arm_output_addr_const_extra): New prototypes.
4849         (thumb_legitimize_pic_address): Delete.
4850         * config/arm/arm.c: Include "gt-arm.h".
4851         (enum tls_reloc): New.
4852         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
4853         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
4854         (arm_call_tls_get_addr, legitimize_tls_address)
4855         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
4856         (arm_init_tls_builtins, arm_emit_tls_decoration)
4857         (arm_output_addr_const_extra): New functions.
4858         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
4859         (TARGET_HAVE_TLS): Define.
4860         (target_thread_pointer): New.
4861         (arm_override_options): Handle -mtp=.
4862         (legitimize_pic_address): Ignore UNSPECs.
4863         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
4864         relative symbols.
4865         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
4866         (tls_get_addr_libfunc): New variable.
4867         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
4868         (arm_init_builtins): Call arm_init_tls_builtins.
4869         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
4870         (arm_encode_section_info): Call default_encode_section_info.
4871         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
4872         (enum arm_tp_type): New.
4873         (target_thread_pointer): Add declaration.
4874         (LEGITIMATE_CONSTANT_P): Handle TLS.
4875         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
4876         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
4877         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
4878         * config/arm/arm.md: Add UNSPEC_TLS.
4879         (movsi): Handle TLS.
4880         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
4881         non-PIC.
4882         (tls_load_dot_plus_eight): New insn and a peephole to create it.
4883         (load_tp_hard, load_tp_soft): New insns.
4884         * arm.opt: Add -mtp=.
4885         * doc/invoke.texi (ARM Options): Document -mtp.
4886
4887 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4888
4889         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
4890         * config/arm/libunwind.S: Include "lib1funcs.asm".
4891         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
4892         (LIB2ADDEH): Add libunwind.S.
4893         (LIB2ADDEHDEP): Add lib1funcs.asm.
4894         * mklibgcc.in: Handle asm files in libgcc_eh.a.
4895
4896 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4897
4898         PR fortran/18452
4899         * gcc/c.opt: Add a -lang-fortran option.
4900         * gcc/c-opts.c: Add a lang_fortran flag.
4901         (c_common_init_options): Handling the -lang-fortran option.
4902         (c_common_handle_option): Add a case for Fortran options in
4903         preprocessing. Remove cases for -ffixed-form and
4904         -ffixed-line-length. Add a case for -lang-fortran.
4905
4906 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
4907
4908         * config/rs6000/rs6000.c: Include params.h
4909         (optimization_options): Set max-grow-copy-bb-insns default to 16.
4910         (bdesc_2arg): Delete vpkuhss and vpkuwss.
4911         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
4912         (UNSPEC_VPKUWSS): Delete.
4913         (altivec_vpkuhss): Delete.
4914         (altivec_vpkuwss): Delete.
4915         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
4916         final condition.
4917         (neg_eq0<mode>): Remove final condition.
4918         (neg_eq<mode>): Remove condition and split-condition.
4919
4920 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
4921
4922         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
4923         Use associated print macros.
4924
4925 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4926
4927         PR c++/17964
4928         * diagnostic.c (diagnostic_set_info_translated): New function.
4929         (diagnostic_set_info): Use it.  Add comment.
4930         * diagnostic.h (diagnostic_set_info_translated): Declare.
4931
4932 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4933
4934         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
4935         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
4936         reference only if 'public' is true.
4937         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
4938         emit the .hidden directive only if the indirect reference is public.
4939         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
4940         Pass it to dw2_force_const_mem.
4941         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
4942         * dwarf2out.c (output_cfi): Adjust calls to above function.
4943         (output_call_frame_info): Likewise.
4944         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
4945         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
4946
4947 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
4948
4949         PR tree-optimization/24483
4950         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
4951         field to elts if possible.
4952
4953 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4954
4955         PR middle-end/23155
4956         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
4957         CONSTRUCTOR.
4958
4959 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
4960
4961         Fix PR tree-optimization/24351
4962
4963         * tree-ssa-structalias.c (struct variable_info): Add
4964         collapsed_into.
4965         (get_varinfo_fc): New function to follow collapsing.
4966         (new_var_info): Set collapsed_to to NULL.
4967         (dump_constraint): Follow collapsing.
4968         (build_constraint_graph): Handle collapsing.
4969         (do_simple_structure_copy): Return false if something bad
4970         happened.
4971         (collapse_rest_of_var): New function.
4972         (do_structure_copy): Collapse if do_simple_structure_copy returns
4973         false.
4974
4975 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4976
4977         PR middle-end/24589
4978         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
4979         expressions to a statement list instead of gimplifying them.
4980
4981 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4982
4983         PR rtl-optimization/23585
4984         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
4985         that can't trap plus a constant integer, if the mode has zero size.
4986
4987 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4988
4989         PR target/24620
4990         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
4991         as operand 2.
4992         ("*insv<mode>_reg_extimm"): Likewise.
4993
4994 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4995
4996         PR c/24329
4997         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
4998         c_common_type_for_mode returns an unnamed type.
4999
5000 2005-11-02  Richard Henderson  <rth@redhat.com>
5001
5002         PR target/9350
5003         PR target/24374
5004         * dwarf2out.c (dwarf2out_reg_save_reg): New.
5005         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
5006         * function.c (assign_parms): Use calls.internal_arg_pointer.
5007         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
5008         code.
5009         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
5010         (TARGET_CALLS): Add it.
5011         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
5012         * targhooks.c (default_internal_arg_pointer): New.
5013         * targhooks.h (default_internal_arg_pointer): Declare.
5014         * tree.h (dwarf2out_reg_save_reg): Declare.
5015         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
5016         * config/i386/i386.c (dbx_register_map): Add return column.
5017         (dbx64_register_map, svr4_dbx_register_map): Likewise.
5018         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
5019         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
5020         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
5021         (ix86_save_reg): Save force_align_arg_pointer.
5022         (ix86_emit_save_regs): Make regno unsigned.
5023         (ix86_emit_save_regs_using_mov): Likewise.
5024         (ix86_expand_prologue): Handle force_align_arg_pointer.
5025         (ix86_expand_epilogue): Likewise.
5026         * config/i386/i386.h: (dbx_register_map): Update.
5027         (dbx64_register_map, svr4_dbx_register_map): Update.
5028         (struct machine_function): Add force_align_arg_pointer.
5029         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
5030         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
5031         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
5032
5033 2005-11-02  Jan Hubicka  <jh@suse.cz>
5034
5035         PR target/23303
5036         * i386.md: Add peep2 for simplyfing array accesses.
5037
5038 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
5039
5040         PR target/24615
5041         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
5042         * config/s390/s390.c (s390_decompose_shift_count): New function.
5043         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
5044         (print_shift_count_operand): Use s390_decompose_shift_count.
5045         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
5046         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
5047
5048 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
5049
5050         PR target/24600
5051         * loop.c (loop_givs_rescan): Use force_operand to expand
5052         complex GIVs.
5053
5054 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
5055
5056         PR 22429
5057         * fold-const.c (build_range_check): Use unsigned when signed
5058         overflow is undefined also.  If etype is subtype, make sure that
5059         the subtraction is in the supertype.
5060
5061 2005-11-02  Richard Henderson  <rth@redhat.com>
5062
5063         PR target/24178
5064         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
5065         by MEM_ALIGN.
5066
5067 2005-11-01  Richard Henderson  <rth@redhat.com>
5068
5069         PR 21518
5070         * loop.c (scan_loop): Do not propagate computations to a hard
5071         register destination with SMALL_REGISTER_CLASSES.
5072
5073 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
5074
5075         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
5076         costs for MULT inside PLUS or MINUS.
5077
5078 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
5079
5080         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
5081         (TRAMPOLINE_SIZE): Round up to 60.
5082         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
5083
5084 2005-10-31  James E. Wilson  <wilson@specifix.com>
5085
5086         PR debug/24444
5087         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
5088         ifdef.  Put ifdefs around call in gen_subprogram_die.
5089         (compute_frame_pointer_to_cfa_displacement): Likewise.
5090         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
5091         not defined.
5092
5093         PR rtl-optimization/17356
5094         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
5095         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
5096
5097 2005-10-31  Jan Hubicka  <jh@suse.cz>
5098
5099         PR middle-end/24093
5100         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
5101
5102         PR target/20928
5103         * i386.c (legitimize_pic_address): Deal with large immediates.
5104
5105         PR profile/20815
5106         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
5107         from symbol names while computing checkup.
5108
5109         PR profile/24487
5110         * predict.c (predict_loops): Do not estimate more than
5111         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
5112         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
5113
5114 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
5115
5116         PR tree-optimization/19097
5117         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
5118
5119 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
5120
5121         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
5122
5123 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
5124
5125         PR middle-end/23492
5126         * tree-inline.c (setup_one_parameter): If the init_stmt
5127         is NULL, don't insert the statement.
5128
5129 2005-10-30  Jan Hubicka  <jh@suse.cz>
5130
5131         PR tree-optimization/24172
5132         * tree-inline.c (copy_body_r): Unshare the substituted value first.
5133
5134 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
5135
5136         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
5137         constants for hosts with long != 32 bits.
5138
5139 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
5140
5141         PR middle-end/24093
5142         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
5143
5144 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
5145
5146         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
5147         (TARGET_MS1_16_002): New.
5148         (TARGET_MS1_16_003): New.
5149
5150         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
5151         ("*decrement_and_branch_until_zero_no_clobber"): New.
5152         Add corresponding splitter for decrement_and_branch_until_zero
5153         instruction.
5154         Key all decrement_and_branch_until_zero patterns off of
5155         TARGET_MS1_16_003.
5156
5157 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
5158
5159         PR middle-end/24362
5160         * tree-complex.c (extract_component): Treat RESULT_DECL
5161         like the rest of the decls.
5162
5163 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5164
5165         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
5166         indirect call to _mcount if the function needs a static chain.
5167
5168 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5169             Caroline Tice  <ctice@apple.com>
5170
5171         PR rtl-optimization/24460
5172         * dwarf2out.c (have_switched_text_sections): New boolean variable.
5173         (dwarf2out_switch_text_section): Set it to true instead of
5174         incrementing separate_line_info_table_in_use.
5175         (output_loc_list): Additionally test have_switched_text_sections.
5176         (output_ranges): Likewise.
5177         (dwarf2out_finish): Likewise.
5178         * varasm.c (assemble_start_function): Do not call
5179         insert_section_boundary_note.
5180         (assemble_end_function): If flag_reorder_blocks_and_partition,
5181         switch to the function's section before emitting the .size directive.
5182         * bb-reorder.c (insert_section_boundary_note): Staticify.
5183         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
5184         * output.h (insert_section_boundary_note): Delete.
5185
5186 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
5187
5188         PR c/23103
5189         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
5190         instead of pointer equality when comparing types.
5191
5192 2005-10-24  James E. Wilson  <wilson@specifix.com>
5193
5194         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
5195         add_dependence_list_and_free calls.
5196
5197 2005-10-24  Steven Bosscher  <stevenb@suse.de>
5198
5199         * contrib.texi: Add the names of the LLNL folks who donated
5200         Cray pointer support for gfortran.
5201
5202 2005-10-24  Steven Bosscher  <stevenb@suse.de>
5203
5204         PR tree-optimization/24225
5205         * profile.c (branch_prob): Look from end to start through a
5206         basic block when looking for a locus.
5207
5208 2005-10-24  Richard Henderson  <rth@redhat.com>
5209
5210         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
5211         parallel.
5212         (hppa_expand_prologue): Likewise.
5213
5214 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5215
5216         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
5217         (NO_DEFERRED_PROFILE_COUNTERS): Define.
5218         * pa.h (NO_PROFILE_COUNTERS): Define.
5219         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
5220         (funcdef_nos): New vector to hold label numbers of deferred profile
5221         counters.
5222         (output_deferred_profile_counters): New function.
5223         (hppa_profile_hook): Push label number onto funcdef_nos.
5224         (pa_hpux_file_end): Call output_deferred_profile_counters if
5225         NO_DEFERRED_PROFILE_COUNTERS is false.
5226
5227         * pa-protos.h (get_deferred_plabel): New prototype.
5228         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
5229         Make global.
5230         (output_call): Adjust calls.
5231
5232 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
5233
5234         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
5235         peculiarity of GOT/TOC section usage.
5236
5237 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
5238
5239         PR objc/24435
5240          * c-common.c (constant_string_class_name): Add documentation.
5241
5242 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
5243
5244         PR target/23832
5245         * recog.c (peephole2_optimize): Increment peep2_current_count
5246         only when the slot is empty.
5247
5248 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5249
5250         PR ada/23957
5251         * except.c (output_function_exception_table): Call
5252         assemble_external_libcall if we need a personality function.
5253
5254 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5255
5256         PR rtl-optimization/24460
5257         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
5258         set the basic block for barriers.
5259
5260 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
5261
5262         * var-tracking.c (vt_initialize): Initialize post.
5263
5264 2005-10-21  Devang Patel  <dpatel@apple.com>
5265
5266         PR/24220
5267         * c-common.c (vector_types_convertible_p): Check vector element type.
5268
5269 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
5270
5271         * config/sh/sh.c (prepare_move_operands): Handle the address
5272         constant which is a tls symbolic address plus a constant.
5273
5274 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
5275
5276         PR driver/24473
5277         * gcc.c (main): Use the correct counter for erroring out
5278         about mulitple files.
5279
5280 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
5281
5282         PR target/24465
5283         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
5284         use r2 for 64-bit tls .got access.
5285
5286 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
5287
5288         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
5289         TRUTH_OR_EXPR.
5290
5291 2005-10-20  Steven Bosscher  <stevenb@suse.de>
5292
5293         PR tree-optimization/24307
5294         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
5295
5296 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
5297
5298         PR middle-end/24295
5299         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
5300         alias targets.
5301         * varasm.c (find_decl_and_mark_needed): After cgraph global info
5302         is ready, stop marking functions, but still mark variables.
5303
5304 2005-10-20  Richard Guenther  <rguenther@suse.de>
5305
5306         PR c++/24439
5307         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
5308         void type operands.
5309
5310 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
5311
5312         PR rtl-optimization/23585
5313         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
5314         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
5315         (may_trap_p_1): New predicate extracted from...
5316         (may_trap_p): ... here.  Invoke may_trap_p_1.
5317         (may_trap_or_fault_p): New predicate.
5318         * rtl.h (may_trap_or_fault_p): Declare it.
5319         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
5320         instead of may_trap_p.
5321         (steal_delay_list_from_fallthrough): Likewise.
5322         (fill_simple_delay_slots): Likewise.
5323         (fill_slots_from_thread): Likewise.
5324         * function.c (pad_to_arg_alignment): Rework comment about
5325         SPARC_STACK_BOUNDARY_HACK.
5326         * config/sparc/sparc.h: Likewise.
5327
5328 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
5329
5330         * config/s390/s390.c (s390_expand_insv): New.
5331         * config/s390/s390-protos.h (s390_expand_insv): Declare.
5332         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
5333         ("icm_hi"): Remove mode attribute.
5334         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
5335         Adjust all uses.
5336         ("*extracthi", "*extractqi"): Remove.
5337         (extv<mode>", "*extzv<mode>"): New.
5338         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
5339         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
5340
5341 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5342
5343         * cfgexpand.c (discover_nonconstant_array_refs_r,
5344         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
5345         (tree_expand_cfg): Call discover_nonconstant_array_refs.
5346         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
5347         discover_nonconstant_array_refs.
5348
5349 2005-10-19  Steven Bosscher  <stevenb@suse.de>
5350
5351         PR c/23228
5352         * c-decl.c (pop_scope): Don't warn about an unused variable
5353         if it is marked with TREE_NO_WARNING.
5354         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
5355         somenow mismatch and olddecl is to be replaced.
5356
5357 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5358
5359         PR middle-end/23199
5360         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
5361         whether registers live on the edge can be saved/restored.
5362
5363 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5364
5365         * config/sh/sh.c (fixup_mova): Skip notes.
5366
5367 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5368
5369         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
5370         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
5371         (s390_can_eliminate): Handle BASE_REGNUM elimination.
5372         (s390_initial_elimination_offset): Likewise.
5373         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
5374         register on TARGET_ZARCH targets.
5375         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
5376         (INITIAL_FRAME_POINTER_OFFSET): Remove.
5377         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
5378         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
5379
5380 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5381
5382         * config/s390/s390.md: Comment describing output modifiers updated.
5383         * config/s390/s390.c (print_operand): Likewise.
5384
5385 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5386
5387         * config/s390/s390.c (override_options): Added check for -mstack-size
5388         64k limitation.
5389         * doc/invoke.texi: Mention that limit in the documenation.
5390
5391 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
5392
5393         PR #19672
5394         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
5395
5396 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
5397
5398         Fix PR tree-optimization/24231
5399
5400         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
5401         (compute_avail): Ditto.
5402
5403 2005-10-18  Richard Henderson  <rth@redhat.com>
5404
5405         PR target/24428
5406         * config/i386/i386.c (legitimate_constant_p): Check
5407         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
5408         if LABEL_REF.
5409         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
5410         (legitimate_pic_address_disp_p): Reorg CONST checking to make
5411         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
5412         directly.
5413         (print_operand_address): Likewise.
5414         * config/i386/predicates.md (x86_64_immediate_operand): Test
5415         SYMBOL_REF_TLS_MODEL properly inside CONST.
5416         (x86_64_zext_immediate_operand): Likewise.
5417         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
5418         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
5419         * config/i386/i386-protos.h: Remove predicates.md entries.
5420
5421 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
5422
5423         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
5424         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
5425
5426 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5427             Ian Lance Taylor <ian@airs.com>
5428
5429         PR middle-end/23522
5430         * fold-const.c (fold_widened_comparison): Do not allow range based
5431         constant folding when right operand cannot be unwidened.
5432
5433 2005-10-17  Richard Henderson  <rth@redhat.com>
5434
5435         * builtins.c (expand_builtin_synchronize): Build a new-style asm
5436         with a memory clobber.
5437
5438 2005-10-17  James E Wilson  <wilson@specifix.com>
5439
5440         PR rtl-optimization/17356
5441         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
5442         checking for EDGE_EH.
5443
5444 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
5445
5446         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
5447         the slot on an even boundary for any type with 16-byte alignment.
5448
5449 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
5450
5451         PR target/23424
5452         * md.texi (Modifiers) <%>: Clarify that % doesn't work
5453         after register allocation.
5454
5455 2005-10-17  DJ Delorie  <dj@redhat.com>
5456
5457         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
5458         as frame related.
5459
5460 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
5461
5462         PR c++/22551
5463         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
5464         overflow flags.
5465
5466 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5467
5468         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
5469         to 2 if it's already non-zero.
5470         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
5471         is set and warn about it if flag_schedule_insns is 1.
5472
5473 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
5474
5475         * config/crx/crx.md: Compare-and-branch instructions need to
5476         invalidate CC.
5477
5478 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
5479
5480         PR target/24315
5481         * config/i386/i386.md (*pushdi2_rex64 splitter)
5482         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
5483         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
5484         flow2 pass only when (optimize > 0 && flag_peephole2).
5485
5486 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
5487
5488         PR driver/22544
5489         * gcc.c (have_c): New static variable.
5490         (have_o): Likewise.
5491         (process_command): Remove declation of have_c.
5492         Set have_o to 1 when handling -o.
5493         (main): Add a fatel error if there are multiple
5494         files specified and -o and -c/-S is passed witout
5495         -combine or multiple languages.
5496
5497 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
5498
5499         Fix PR tree-optimization/22444
5500         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
5501         Assert that we don't hit something with subvars.
5502         (setup_pointers_and_addressables): Don't add things with subvars,
5503         because we'll already process the subvars for aliasing purposes.
5504
5505 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
5506
5507         PR target/23424
5508         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
5509         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
5510         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
5511         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
5512         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
5513         swapped, alternatives for the R constraint.
5514
5515         PR middle-end/24341
5516         * builtins.c (get_builtin_sync_mode): Make unlimited
5517         mode_for_size request.
5518
5519 2005-10-15  Richard Henderson  <rth@redhat.com>
5520
5521         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
5522         (gimplify_expr): ... here.
5523         (gimplify_compound_lval): Use it in initial scan loop.  Allow
5524         fb_lvalue in base expression.
5525
5526 2005-10-15  Richard Henderson  <rth@redhat.com>
5527
5528         PR 23714
5529         * builtins.c (expand_builtin_trap): Export.
5530         * expr.h (expand_builtin_trap): Declare.
5531         * expr.c (expand_assignment): Emit a trap for integral offsets
5532         from registers that weren't reduced to bitpos.
5533
5534         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
5535         (mark_array_ref_addressable): Remove.
5536         * tree-flow.h (mark_array_ref_addressable): Remove.
5537         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
5538
5539 2005-10-15  James E Wilson  <wilson@specifix.com>
5540
5541         PR target/24232
5542         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
5543         (add_dependence_list_and_free): Likewise.
5544         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
5545         call.
5546
5547 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
5548
5549         PR 23141
5550         PR 23142
5551         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
5552         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
5553         anti-range.
5554         (vrp_visit_phi_node): Only prevent infinite iterations when
5555         the previous result and the new result are both VR_RANGEs.
5556
5557 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
5558
5559         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
5560         function comment.
5561
5562 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5563
5564         PR c/23439
5565         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
5566         to initialize loc.
5567
5568 2005-10-14  Per Bothner  <per@bothner.com>
5569
5570         PR preprocessor/21250
5571         * c-ppoutput.c (print_line): Print internal line 0 as 1.
5572
5573 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
5574
5575         PR c++/22551
5576         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
5577         overflow flags.  Refactor some conditionals.
5578
5579 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
5580
5581         PR tree-opt/21304
5582         * tree-dfa.c (add_referenced_var): Only look at decls which
5583         have TREE_CONSTANT or TREE_READONLY set instead of if
5584         !TREE_PUBLIC or !TREE_CONSTANT.
5585
5586 2005-10-13  James E Wilson  <wilson@specifix.com>
5587
5588         * doc/invoke.texi: For -x, add f95-cpp-input.
5589         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
5590
5591 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
5592
5593         PR tree-optimization/24262
5594         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
5595         in loop all the time.
5596
5597 2005-10-12  Richard Henderson  <rth@redhat.com>
5598
5599         PR c/24255
5600         * tree.h (DECL_TRANSPARENT_UNION): Remove.
5601         * function.c (assign_parm_find_data_types): Don't support it.
5602         * print-tree.c (print_node): Likewise.
5603         * c-common.c (handle_transparent_union_attribute): Likewise.
5604         Use build_duplicate_type.
5605         * tree-inline.c (remap_type_1): Split out of remap_type;
5606         properly remap aggregate fields.
5607         (build_duplicate_type): New.
5608         * doc/extend.texi (Variable Attributes): Remove documentation
5609         for transparent_union.
5610
5611 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5612
5613         PR target/24284
5614         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
5615         (gen_stack_pointer_dec): Likewise.
5616
5617 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
5618
5619         PR middle-end/21275
5620         PR middle-end/21766
5621         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
5622         target hook.
5623         (struct cxx): Add adjust_class_at_definition target hook.
5624         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
5625         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
5626         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
5627         hook_void_tree. Add to TARGET_CXX.
5628         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
5629         dllimport_flag.
5630         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
5631         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
5632         instead of attribute. Check for dllexport override.  Warn if
5633         inconsistent dll linkage. Don't lose old dllimport if decl has
5634         had address referenced.   Tweak lookup of dllimport atribute.
5635         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
5636         for target specific rules.  Don't add dllimport attribute if
5637         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
5638         dllimport attribute.
5639         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
5640         * varasm.c (initializer_constant_valid_p): Replace
5641         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
5642
5643         PR target/21801
5644         PR target/23589
5645         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
5646         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
5647         (i[34567]86-*-mingw32*): Likewise.
5648
5649         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
5650         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
5651
5652         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
5653         C++-specific code. Change return value to bool.
5654         (i386_pe_dllimport_p): Likewise.
5655         (associated_type): Simplify and make language-independent
5656         (i386_pe_encode_section_info): Replace override of ambiguous
5657         dllimport symbol refs with a gcc_assert.
5658         (i386_pe_valid_dllimport_attribute_p): Define.
5659         * config/i386/winnt-cxx.c: New file. Define C++ versions of
5660         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5661         i386_pe_adjust_class_at_definition.
5662         * config/i386/winnt-stubs.c: New file. Define stub versions of
5663         lang-specific functions.
5664         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
5665         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5666         i386_pe_adjust_class_at_definition.
5667         (i386_pe_valid_dllimport_attribute_p): Declare.
5668         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
5669         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
5670         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
5671
5672         PR target/19704
5673         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
5674         dllimport attribute with test of DECL_DLLIMPORT_P.
5675
5676 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
5677
5678         * combine.c (make_extraction): Correct offset computation.
5679
5680 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
5681
5682         * config/cris/t-linux (LIMITS_H_TEST): Define.
5683
5684 2005-10-12  Richard Henderson  <rth@redhat.com>
5685
5686         PR rtl-opt/23324
5687         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
5688
5689 2005-10-12  Richard Guenther  <rguenther@suse.de>
5690
5691         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
5692
5693 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
5694
5695         PR c++/19964
5696         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
5697         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
5698         type.
5699
5700 2005-10-12  Richard Guenther  <rguenther@suse.de>
5701
5702         PR c++/23799
5703         * varasm.c (output_constant): Correct typo from previous
5704         patch by DJ.
5705
5706 2005-10-11  Ian Lance Taylor  <ian@airs.com>
5707
5708         PR rtl-optimization/13931
5709         * combine.c: Revert patch of 2003-05-14, and:
5710         (try_combine): Only set elim_i1 and elim_i2 if the destination is
5711         completely killed in the appropriate insn.
5712         (distribute_notes): Don't skip multiple hard register test for
5713         elim_i1 and elim_i2.
5714
5715 2005-10-11  Richard Henderson  <rth@redhat.com>
5716
5717         PR c/24255
5718         * c-typeck.c (convert_for_assignment): Use build_constructor_single
5719         to initialize a transparent union instead of a nop_expr.
5720
5721 2005-10-11  Richard Henderson  <rth@redhat.com>
5722
5723         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
5724         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
5725         (tree_ssa_dce_loop): Call scev_reset.
5726
5727         PR tree-opt/24300
5728         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
5729         * tree-ssa-dce.c: Include cfgloop.h.
5730         (tree_ssa_dce_loop, pass_dce_loop): New.
5731         * tree-pass.h (pass_dce_loop): Declare it.
5732         * passes.c (init_optimization_passes): Use it.
5733
5734 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5735
5736         PR middle-end/24263
5737         * convert.c (convert_to_real): Revert 2005-10-05 patch.
5738         Only apply the optimization for rounding builtins if the inner
5739         cast is also an extension.
5740
5741 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
5742
5743         PR tree-opt/23946
5744         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
5745         mark_new_vars_to_rename instead of update_stmt.
5746
5747 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5748
5749         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
5750
5751 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
5752
5753         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
5754         for setting MMX register to 0 rather than mmx.
5755
5756 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
5757
5758         PR target/12098
5759         * configure.ac: Move gas check from mips specific case to common case.
5760         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
5761         * configure: Regenerate
5762         * doc/install.texi: Update.
5763
5764 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5765
5766         PR target/24284
5767         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
5768
5769 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
5770
5771         * gcc.c (do_spec_1): Accept numeric characters in file name
5772         suffixes.
5773
5774 2005-10-10  Nick Clifton  <nickc@redhat.com>
5775
5776         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
5777         describing the deleted arm_gen_rotated_half_load function.
5778
5779 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5780
5781         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
5782         __fpscr_values.
5783
5784 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
5785
5786         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
5787         gnu_ld assignments.
5788         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
5789         (EXTRA_MULTILIB_PARTS): Define.
5790         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5791         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5792         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
5793         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5794         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5795         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
5796
5797 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
5798
5799         PR tree-optimization/24226
5800         * tree-cfg.c (remove_bb): Clean up unreachable loops.
5801         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
5802         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
5803         Export.
5804
5805 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
5806
5807         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
5808
5809 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
5810
5811         PR target/24136
5812         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
5813         Rewrite for no need for the early clobber.
5814
5815 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5816
5817         Merge from csl-arm-branch:
5818         2005-09-07  Paul Brook  <paul@codesourcery.com>
5819         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
5820         space to string.
5821
5822         2005-04-30  Paul Brook  <paul@codesourcery.com>
5823         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
5824         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
5825
5826         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
5827         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
5828         (arm_override_options): Use TARGET_AAPCS_BASED.
5829         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
5830         (PTRDIFF_TYPE): Use int for AAPCS.
5831         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
5832         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
5833         (DEFAULT_SHORT_ENUMS): Delete.
5834         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
5835
5836         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
5837         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
5838         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
5839         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
5840
5841         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
5842         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
5843
5844         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
5845         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
5846
5847         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
5848         * config.gcc (arm*-*-linux-gnueabi): Add it.
5849         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
5850         redefining it.
5851         (TARGET_OS_CPP_BUILTINS): Likeiwse.
5852         * config/arm/linux-eabi.h: New file.
5853         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
5854         (LINUX_TARET_LINK_SPEC): Likewise.
5855         (LINK_SPEC): Use it.
5856         * config/arm/t-linux-eabi: New file.
5857
5858 2005-10-08  Steven Bosscher  <stevenb@suse.de>
5859
5860         PR other/22202
5861         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
5862         spaces.
5863         (PARAM_SMS_DFA_HISTORY): Likewise.
5864
5865 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5866
5867         PR middle-end/23150
5868         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
5869         (load_register_parameters): Call it.
5870         (check_sibcall_argument_overlap_1): Likewise.
5871         (store_one_arg): Likewise.
5872
5873 2005-10-07  James E. Wilson  <wilson@specifix.com>
5874
5875         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
5876         DImode not VECINT24 for operand 2.
5877
5878         PR target/23644
5879         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
5880         -mtune-arch.
5881
5882         PR target/24193
5883         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
5884         fr_spill): Use destination_operand for operand 0.
5885
5886 2005-10-07  DJ Delorie  <dj@redhat.com>
5887
5888         * varasm.c (output_constant): Limit error to expanding
5889         conversions.
5890
5891 2005-10-07  Richard Guenther  <rguenther@suse.de>
5892
5893         PR middle-end/24227
5894         * fold-const.c (fold_binary): Fix operand types during folding
5895         of X op (A, Y).  Evaluation order of the side-effects of
5896         X and A are frontend-defined, so ensure we honour that even for
5897         tcc_comparison class operands; eased by removing duplicate code.
5898
5899 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5900
5901         * stor-layout.c (layout_type): Do not allow alignment of array
5902         elements to be greater than their size.
5903
5904 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5905
5906         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
5907         host_xmake_file.
5908         (hppa*-*-linux*): Ditto.
5909         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
5910         * config/host-hpux.c: New.
5911         * config/x-hpux: New.
5912         * config/pa/x-hpux: Remove.
5913         * config/pa/x-linux: Remove.
5914         * config/pa/pa-host.c: Remove.
5915
5916 2005-10-07  Jeff Law  <law@redhat.com>
5917
5918         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
5919         determine whether or not to try and thread outgoing edges.
5920
5921 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
5922
5923         * config/rs6000/rs6000.md (eqsi_power): New.
5924         (neg_eq0si): Add TARGET_POWER to final condition.
5925         (neg_eqsi): Same.
5926
5927 2005-10-06  Richard Henderson  <rth@redhat.com>
5928
5929         * config/rs6000/rs6000.c: Revert last change.
5930
5931 2005-10-06  Richard Henderson  <rth@redhat.com>
5932
5933         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
5934         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
5935
5936 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
5937
5938         PR middle-end/22216
5939         PR middle-end/23651
5940         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
5941         out return_label and naked_return_label.
5942
5943 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5944
5945         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
5946         change.
5947
5948 2005-10-06  Richard Henderson  <rth@redhat.com>
5949
5950         PR tree-opt/22237
5951         * tree-inline.c (declare_return_variable): Handle modify_dest not
5952         being a DECL.
5953
5954 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5955
5956         Fix PR tree-optimization/22488
5957         * tree-ssa-structalias.c (check_for_overlaps): New function.
5958         (create_variable_info_for): Use it.
5959
5960 2005-10-06  Richard Henderson  <rth@redhat.com>
5961
5962         PR debug/24070
5963         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
5964         (dwarf2out_start_source_file): Print it.
5965
5966 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
5967
5968         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
5969
5970 2005-10-06  Richard Henderson  <rth@redhat.com>
5971
5972         PR 23706
5973         * mode-switching.c (optimize_mode_switching): Clear transp bit
5974         for block with incomming abnormal edges.
5975
5976         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
5977         (fpscr_set_from_mem): Use them.
5978         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
5979         (fpscr postinc splitters): Rewrite as peephole2+split.
5980
5981 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
5982
5983         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
5984         (eq<mode>_compare): Same.
5985
5986 2005-10-06  Richard Guenther  <rguenther@suse.de>
5987
5988         PR tree-optimization/24238
5989         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
5990
5991 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
5992
5993         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
5994         here.  Use AC_PATH_PROG for environment variables instead of
5995         test -x.
5996         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
5997         objdump also.
5998         * configure: Regenerated.
5999
6000 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
6001
6002         PR target/23783
6003         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
6004         then force it into a register.
6005         (call_value): Likewise.
6006
6007 2005-10-06  Richard Henderson  <rth@redhat.com>
6008
6009         PR 24049
6010         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
6011         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
6012         under pass_vectorize.
6013
6014 2005-10-05  Devang Patel  <dpatel@apple.com>
6015
6016         PR Debug/23205
6017         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
6018         handling constants. Check NAMESPACE_DECL context for constants.
6019
6020 2005-10-05  Eric Christopher  <echristo@apple.com>
6021
6022         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
6023
6024 2005-10-05  Richard Henderson  <rth@redhat.com>
6025
6026         PR 23714
6027         * tree-cfg.c (mark_array_ref_addressable_1): New.
6028         (mark_array_ref_addressable): New.
6029         * tree-flow.h (mark_array_ref_addressable): Declare.
6030         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
6031
6032 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
6033
6034         PR middle-end/20606
6035         PR middle-end/24069
6036         * reload.c (subst_reloads): When adding a REG_LABEL to a
6037         jump instruction, also update JUMP_LABEL.
6038
6039 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
6040
6041         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
6042         * bb-reorder.c (copy_bb_p): Use it.
6043         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
6044
6045 2005-10-05  Richard Henderson  <rth@redhat.com>
6046
6047         PR target/23602
6048         * toplev.c (process_options): Warn about unsupported combinations
6049         of unwind tables and omit-frame-pointer.
6050         * config/i386/i386.c (override_options): Similarly.  Enable
6051         accumulate-outgoing-args if not explicitly disabled.
6052
6053 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
6054
6055         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
6056         Handle big endian vs. small endian.
6057         (vec_initv2sf): Handle big endian vs. small endian.
6058         (*vec_extractv2sf_1): Ditto.
6059
6060 2005-10-05  Dale Johannesen  <dalej@apple.com>
6061
6062         * convert.c (convert_to_real):  Don't convert
6063         (float)floor(double d) to floorf((float)d).
6064
6065 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
6066
6067         * config/arm/arm.md (insv): Use gen_int_mode in more places.
6068
6069 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
6070
6071         PR tree-optimization/18587
6072         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
6073         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
6074         build_vuses): Change to VEC type.
6075         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
6076         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
6077         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
6078         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
6079         (get_name_decl): New.  Return DECL_UID of base variable.
6080         (operand_build_cmp): New.  qsort comparison routine.
6081         (operand_build_sort_virtual): New.  Sort virtual build vector.
6082         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
6083         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
6084         (FINALIZE_BASE): Use get_name_decl.
6085         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
6086         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
6087         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
6088         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
6089         direct VEC_* manipulations.
6090         (build_ssa_operands): Call operand_build_sort_virtual.
6091         (copy_virtual_operand, create_ssa_artficial_load_stmt,
6092         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
6093         with direct VEC_* manipulations.
6094         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
6095         with direct VEC manipulations.
6096
6097 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
6098
6099         PR tree-optimization/21419
6100         PR tree-optimization/24146
6101         PR tree-optimization/24151
6102
6103         * c-typeck.c (readonly_error): Handle USE being lv_asm.
6104         (build_asm_expr): Call it if outputs are read-only.
6105         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
6106
6107 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
6108             Paolo Bonzini  <bonzini@gnu.org>
6109
6110         PR target/23809
6111
6112         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
6113         enable the instructions and not just the built-ins.
6114         * doc/invoke.texi (x86 Options): Likewise.
6115
6116 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
6117
6118         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
6119
6120         * doc/invoke.texi (Option Summary): Correct spelling
6121         of -mmacosx-version-min.
6122
6123 2005-10-04  Devang Patel  <dpatel@apple.com>
6124
6125         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
6126         real types.
6127
6128 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
6129
6130         * tree-vect-transform.c (vect_create_epilog_for_reduction):
6131         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
6132
6133 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
6134
6135         * config/s390/s390.md ("TDSI","DP"): New mode macros.
6136         ("TE","tg"): New mode attributes.
6137         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
6138         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
6139         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
6140         dword_mode and one for GPRmode.
6141
6142 2005-10-04  Ian Lance Taylor  <ian@airs.com>
6143
6144         PR preprocessor/13726
6145         * c-ppoutput.c (cb_include): Add comments parameter, and print out
6146         any comments passed in.
6147
6148 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
6149
6150         * tree.c (annotate_with_file_line): Fix typo.
6151
6152 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6153
6154         PR ada/19382
6155         * builtins.c (fold_builtin_memcmp): When constructing the pointer
6156         type used to access data in the inlined length == 1 case, use
6157         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
6158         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
6159
6160 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
6161
6162         * config/i386/i386.h (TARGET_FISTTP): Enable also for
6163         TARGET_SSE3 and only for TARGET_80387.
6164         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
6165         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
6166         Do not depend on TARGET_80387.
6167
6168 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
6169
6170         * tree.c (last_annotated_node): Change type to location_t*.
6171         (annotate_with_file_line): Reflect the change of
6172         last_annotated_node type.
6173
6174 2005-10-04  Richard Guenther  <rguenther@suse.de>
6175
6176         PR c/23576
6177         * c-decl.c (grokdeclarator): Don't write to fields
6178         of error_mark_node.
6179
6180 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
6181
6182         PR middle-end/23125
6183         * c-decl.c (finish_decl): Use set_user_assembler_name even for
6184         register variables.
6185         * varasm.c (make_decl_rtl): If a register variable does not
6186         have a set user assmbler name, error out.
6187         Decode the asmspec is now name+1 bypassing '*'.
6188
6189 2005-10-04  Steven Bosscher  <stevenb@suse.de>
6190
6191         PR tree-optimization/23049
6192         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
6193         of a COND_EXPR is folded before calling fold on the whole rhs of a
6194         conditional assignment.
6195         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
6196         document that a COND_EXPR may appear there.
6197
6198 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
6199
6200         PR 23445
6201         * tree-vrp.c (extract_range_from_assert): If the new numeric
6202         range created out of the assertion contradicts the existing
6203         numeric range of the ASSERT_EXPR variable, make the new range
6204         varying.
6205
6206 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6207
6208         * config/sh/sh.c (sh_register_move_cost): Add case for moving
6209         from T_REGS to FP register class.
6210
6211 2005-10-03  Richard Henderson  <rth@redhat.com>
6212
6213         PR 24135
6214         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
6215         before creating a new one.
6216
6217 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
6218
6219         * config/rs6000/t-aix43 (LDFLAGS): New.
6220         * config/rs6000/t-aix52 (LDFLAGS): New.
6221
6222 2005-10-03  Ian Lance Taylor  <ian@airs.com>
6223
6224         * gimplify.c (find_single_pointer_decl_1): New static function.
6225         (find_single_pointer_decl): New static function.
6226         (internal_get_tmp_var): For a formal variable, set restrict base
6227         information if appropriate.
6228         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
6229         return it.
6230         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
6231         (DECL_GET_RESTRICT_BASE): Define.
6232         (SET_DECL_RESTRICT_BASE): Define.
6233         (decl_restrict_base_lookup): Declare.
6234         (decl_restrict_base_insert): Declare.
6235         (struct tree_decl_with_vis): Add based_on_restrict_p field.
6236         * tree.c (restrict_base_for_decl): New static variable.
6237         (init_ttree): Initialize restrict_base_for_decl.
6238         (copy_node_stat): Copy restrict base information.
6239         (decl_restrict_base_lookup): New function.
6240         (decl_restrict_base_insert): New function.
6241         (print_restrict_base_statistics): New static function.
6242         (dump_tree_statistics): Call print_restrict_base_statistics.
6243
6244 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
6245
6246         PR 24142
6247         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
6248         case of anti-ranges.
6249
6250 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
6251
6252         PR c/18851
6253         * c-typeck.c (tagged_tu_seen): Rename to ...
6254         (tagged_tu_seen_cache): this and add val field.
6255         (comptypes): Move functional to comptypes_internal
6256         and free tagged_tu_seen.
6257         (comptypes_internal): New function and call comptypes_internal
6258         instead of comptypes. Speed up by sibcalling
6259         tagged_types_tu_compatible_p.
6260         (alloc_tagged_tu_seen): New function
6261         (free_all_tagged_tu_seen_up_to): New function.
6262         (tagged_types_tu_compatible_p): Return the val of the seen two
6263         types.
6264         Add that the two types are the same to tagged_tu_seen_base
6265         if they are and call comptypes_internal instead of comptypes.
6266         <case UNION_TYPE>: Speed up common type where the fields are
6267         in the same order.
6268         (function_types_compatible_p): Call comptypes_internal instead of
6269         comptypes.
6270         (type_lists_compatible_p): Likewise.
6271         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
6272
6273 2005-10-02  Matthias Klose  <doko@debian.org>
6274
6275         * doc/invoke.texi: Fix typo and speling error.
6276
6277 2005-10-01  Richard Henderson  <rth@redhat.com>
6278
6279         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
6280
6281 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
6282
6283         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
6284         using --start-group and --end-group.
6285
6286 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
6287
6288         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
6289         FIXME note regarding quirky semantics.
6290
6291 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
6292
6293         PR 24141
6294         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
6295         non-null range as a last resort.
6296
6297 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
6298             Diego Novillo  <dnovillo@redhat.com>
6299
6300         PR 23604
6301         * tree-vrp.c (extract_range_from_assert): For !=
6302         assertions, only build an anti-range if LIMIT is a
6303         single-valued range.
6304
6305 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
6306
6307         * arm.md (movqi): On thumb when optimizing, handle loading from
6308         memory by describing this as taking a subreg of a zero-extended load
6309         into an SImode register.
6310         (movhi): Likewise.
6311
6312 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
6313
6314         * reload1.c (merge_assigned_reloads): Do not change any
6315         RELOAD_FOR_OUTPUT_ADDRESS reloads.
6316
6317 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
6318
6319         * Makefile.in (LIPO_FOR_TARGET): Define.
6320         (STRIP_FOR_TARGET): Define.
6321
6322         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
6323         before creating new ones.  Do symlinks before creating the actual
6324         targets.
6325
6326         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
6327         to work out which multilibs are actually being built.
6328
6329 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
6330
6331         * tree-vect-transform.c, config/ms1/ms1.md,
6332         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
6333         Follow spelling conventions.
6334         * doc/invoke.texi, doc/md.texi: Fix typos.
6335
6336 2005-09-30  Andrew Macleod  <amacleod@redat.com>
6337
6338         PR tree-optimization/21430
6339         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
6340         use operands, and set stmt pointer if need be.
6341         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
6342         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
6343         present.
6344
6345 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6346
6347         PR middle-end/24053
6348         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
6349
6350 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
6351
6352         * optabs.c (expand_binop): Initialize first_pass_p.
6353
6354 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
6355
6356         PR middle-end/24109
6357         * c-decl.c (c_write_global_declarations_1): If any
6358         wrapup_global_declaration_2 call returned true, restart the loop.
6359
6360 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
6361
6362         Fix PR tree-optimization/24117
6363         * tree-ssa-structalias.c (find_func_aliases): Strip nops
6364         before considering whether to use anyoffset.
6365
6366 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6367
6368         Revert this patch:
6369
6370         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6371
6372         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6373         to order operands.
6374         (swap_commutative_operands_with_target): New.
6375
6376 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6377
6378         PR c/21419
6379         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
6380         read-only.
6381
6382 2005-09-29  Steven Bosscher  <stevenb@suse.de>
6383
6384         PR tree-optimization/23911
6385         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
6386         and IMAGPART_EXPR too.
6387
6388 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
6389
6390         PR 17886
6391         * expmed.c (expand_shift): Move logic to reverse rotation
6392         direction when  rotating by constants ...
6393         * optabs.c (expand_binop): ... here.
6394         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
6395         (ix86_rotrdi3): New pattern.
6396         (rotldi3): Handle 32-bit mode.
6397         (ix86_rotldi3): New pattern.
6398
6399 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
6400
6401         PR target/24102
6402         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
6403         check for numbers that need no bit twiddle.
6404
6405 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
6406
6407         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
6408         multilib to be built.
6409
6410         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
6411         (stage1-start): Delete old libgcc and libunwind before moving
6412         anything into the stage directory.
6413         (stage2-start): Likewise.
6414         (stage3-start): Likewise.
6415         (stage4-start): Likewise.
6416         (stageprofile-start): Likewise.
6417         (stagefeedback-start): Likewise.
6418         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
6419         header in tm_file and CPU-specific t-darwin in tmake_file.
6420         (i[34567]86-*-darwin*): Don't change tm_file.
6421         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
6422         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
6423         shared library stub for target OS version.
6424         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
6425         (SHLIB_LINK): Don't make SHLIB_SOLINK.
6426         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
6427         (libgcc_s.%.dylib): New.
6428         (LIBGCC): Define.
6429         (install-darwin-libgcc-stubs): New.
6430         (INSTALL_LIBGCC): New append.
6431         * config/i386/darwin-libgcc.10.4.ver: New.
6432         * config/i386/darwin-libgcc.10.5.ver: New.
6433         * config/i386/t-darwin: New.
6434         * config/rs6000/darwin-libgcc.10.4.ver: New.
6435         * config/rs6000/darwin-libgcc.10.5.ver: New.
6436         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
6437         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
6438
6439 2005-09-28  Paul Brook  <paul@codesourcery.com>
6440
6441         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
6442         denormals.
6443
6444 2005-09-28  Richard Guenther  <rguenther@suse.de>
6445
6446         PR tree-optimization/23853
6447         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
6448         host_integerp to verify misalignment value.
6449
6450 2005-09-28  Richard Henderson  <rth@redhat.com>
6451
6452         * builtins.c (get_builtin_sync_mode): New.
6453         (expand_builtin_sync_operation): Pass in mode argument.
6454         (expand_builtin_compare_and_swap): Likewise.
6455         (expand_builtin_lock_test_and_set): Likewise.
6456         (expand_builtin_lock_release): Likewise.
6457         (expand_builtin): Update to match.
6458
6459 2005-09-28  Nick Clifton  <nickc@redhat.com>
6460
6461         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
6462         formatting.  Add check to PLUS case to ensure that the offset is
6463         within an acceptable range.
6464
6465         * config/v850/v850.md (casesi): Disable the generation of the
6466         switch pattern as it is not being handled properly at the moment.
6467
6468         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
6469         for when the high words are identical.
6470
6471 2005-09-27  Richard Henderson  <rth@redhat.com>
6472
6473         * pretty-print.c (pp_base_format): Fix typo for %>.
6474
6475 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
6476             Devang Patel  <dpatel@apple.com>
6477
6478         PR tree-optimization/23625
6479         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
6480         LABEL_EXPR, assertion check.
6481
6482 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
6483
6484         * optabs.c (no_conflict_move_test): Check if a result of a
6485         to-be-moved insn would be clobbered by an originally
6486         preceding insn.
6487
6488 2005-09-27  Jeff Law  <law@redhat.com>
6489
6490         * passes.c (init_optimization_passes): Replace copy propagation
6491         passes immediately after DOM with phi-only copy propagation
6492         pases.  Add phi-only copy propagation pass after first DOM pass.
6493         * tree-pass.h (pass_phi_only_copy_prop): Declare.
6494         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
6495         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
6496         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
6497         to init_copy_prop.  Callers updated.
6498         (do_phi_only_copy_prop): New function.
6499         (pass_phi_only_copy_prop): New pass descriptor.
6500
6501 2005-09-27  Nick Clifton  <nickc@redhat.com>
6502
6503         * libgcc2.c (__popcount_tab): Remove redundant prototype.
6504
6505 2005-09-26  Jason Merrill  <jason@redhat.com>
6506
6507         PR c++/13764
6508         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
6509
6510         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
6511
6512 2005-09-26  James E Wilson  <wilson@specifix.com>
6513
6514         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
6515         copyright.  Add gcc copyright plus libgcc exception.
6516         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
6517         copyright.
6518         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
6519
6520 2005-09-26  Jeff Law  <law@redhat.com>
6521
6522         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
6523         about when to iterate.
6524
6525 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
6526
6527         PR target/23847
6528         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
6529         for __complex__ double in -mcpu=G5 mode.
6530
6531 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
6532
6533         PR tree-optimization/23942
6534         * Makefile.in (SCEV_H): Depends on PARAMS_H.
6535         * tree-scalar-evolution.c: Include params.h.
6536         (t_bool): New enum.
6537         (follow_ssa_edge, follow_ssa_edge_in_rhs,
6538         follow_ssa_edge_in_condition_phi_branch,
6539         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
6540         Change return type to t_bool.  Use a parameter to limit the size of
6541         trees that are walked before stopping
6542         (analyze_evolution_in_loop): Initialize the limit to 0.
6543         (follow_ssa_edge): Give up by returning t_dont_know if the limit
6544         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
6545
6546 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6547
6548         PR middle-end/23831
6549         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
6550         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
6551
6552 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
6553
6554         * combine.c (make_extraction): Check for valid use of subreg.
6555
6556 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6557
6558         PR target/24055
6559         * config/i386/i386.md ("*fistdi2_1"): New pattern.
6560         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
6561         ("fist<mode>2_with_temp"): Use only register operands.
6562
6563 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
6564
6565         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
6566         CALL_INSN_FUNCTION_USAGE.
6567
6568 2005-09-26  Richard Guenther  <rguenther@suse.de>
6569
6570         PR middle-end/15855
6571         * gcse.c: Include hashtab.h, define ldst entry hashtable.
6572         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
6573         (ldst_entry): Use the hashtable instead of list-walking.
6574         (find_rtx_in_ldst): Likewise.
6575         (free_ldst_entry): Free the hashtable.
6576         (compute_ld_motion_mems): Create the hashtable.
6577         (trim_ld_motion_mems): Remove entry from hashtable if
6578         removing it from list.
6579         (compute_store_table): Likewise^2.
6580         (store_motion): Free hashtable in case we did not see
6581         any stores.
6582
6583 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
6584
6585         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
6586         and arg1 if we are passing them to fold_build2.
6587
6588 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
6589
6590         PR 23828
6591         * config/i386/i386.c (ix86_function_regparm): Fix the test for
6592         a nested function.
6593
6594 2005-09-25  Richard Henderson  <rth@redhat.com>
6595
6596         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
6597         SYMBOL_REF_TLS_MODEL to be correct.
6598
6599 2005-09-24  Richard Henderson  <rth@redhat.com>
6600
6601         * ipa-type-escape.c (discover_unique_type): Remove dead code at
6602         end of function.  Reindent.
6603
6604 2005-09-24  Ian Lance Taylor  <ian@airs.com>
6605
6606         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
6607         NEGATE_EXPR/BIT_NOT_EXPR case.
6608
6609 2005-09-24  Richard Henderson  <rth@redhat.com>
6610
6611         * c-common.c (handle_mode_attribute): When not modifying in place,
6612         create subtypes for enumerations.
6613         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
6614         * gimplify.c (create_tmp_from_val): Likewise.
6615
6616 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
6617
6618         * config/i386/i386.md (*tls_global_dynamic_64,
6619         *tls_local_dynamic_base_64): Add missing mode to call.
6620         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
6621
6622 2005-09-24  Jan Hubicka  <jh@suse.cz>
6623
6624         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
6625         (cgraph_clone_node): Likewise.
6626         * cgraph.h (cgraph_clone_edge): Update prototype.
6627         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
6628         duplicated prototypes; add updating argument.
6629         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
6630         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
6631         updating profile.
6632         (cgraph_mark_inline_edge): Likewise.
6633         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
6634         (cgraph_flatten_node): Likewise.
6635         (cgraph_decide_recursive_inlining): Likewise.
6636         (cgraph_decide_inlining_of_small_function): Likewise.
6637         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6638
6639 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6640             Pete Steinmetz <steinmtz@us.ibm.com>
6641
6642         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
6643         (rldic.): Set type to "compare".
6644         (rldicr.): Same.
6645         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
6646         mfjmpr for MFCTR/MFLR.
6647         (movdf_hardfloat64): Same.
6648         (movdf_softfloat64): Same.  Correct order of store and move types.
6649         (movti_string): Set type to store_ux/load_ux.
6650         (load_multiple): Set type to load_ux.
6651         (store_multiple): Set type to store_ux.
6652         (movmemsi): Set type to store_ux.
6653         (output_cbranch direct_return): Set type to jmpreg.
6654         (stmw): Set type to store_ux.
6655         (lmw): Set type to load_ux.
6656         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
6657         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
6658         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
6659         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
6660         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
6661         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
6662         (rios1-fpstore): Increase latency to 3.
6663         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
6664         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
6665
6666 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6667             Andrew Pinski  <pinskia@physics.uc.edu>
6668
6669         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
6670         operand2 constraint to "b".
6671         (sync_<fetchop_name>di_internal): Same.
6672         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
6673         to "b".
6674         (sync_old_<fetchop_name>di_internal): Same.
6675         (sync_new_<fetchop_name>si_internal): Same.
6676         (sync_new_<fetchop_name>di_internal): Same.
6677
6678 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
6679
6680         PR middle-end/23991
6681         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
6682         case, define as macros.
6683
6684         PR rtl-optimization/23837
6685         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
6686         clobber / clobber match between dest and p->first.
6687
6688         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
6689         (no_conflict_move_test): Update comments.
6690
6691 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
6692
6693         * doc/install.texi: Update URL for Jacks.
6694         * doc/sourcebuild.texi: Likewise.
6695
6696 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
6697
6698         PR target/24007
6699         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
6700         registers when choosing register preferences.
6701         (movdf_hardfloat64): Same.
6702
6703 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
6704
6705         * expmed.c (expand_shift): Don't use the target of the rotate as
6706         target for the first expanded shift insn.
6707         * testsuite/gcc.dg/20050922-1.c: Testcase added.
6708
6709 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
6710
6711         PR tree-optimization/22438
6712         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
6713         preserved iv rhs rewriting specially.
6714
6715 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
6716
6717         * tree-data-ref.c (analyze_array_indexes): Only estimate when
6718         estimate_only  is true.
6719         * tree-flow.h (ref_contains_indirect_ref): New prototype.
6720         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
6721         tree-ssa-structalias.c
6722         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
6723         ref_contains_indirect_ref.
6724         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
6725
6726 2005-09-21  DJ Delorie  <dj@redhat.com>
6727
6728         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
6729         MASK_PTR_A0D0.
6730         (mn10300_return_in_memory): Support variable size types also.
6731         (mn10300_pass_by_reference): Likewise.
6732         (mn10300_function_value): New.
6733         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
6734         (FUNCTION_OUTGOING_VALUE): Likewise.
6735         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
6736         * doc/invoke.texi: Document it.
6737
6738 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
6739
6740         PR target/22585
6741         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
6742         force integer op1 into register for XFmode compares.
6743
6744 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
6745
6746         PR middle-end/23971
6747         * expmed.c (alg_code): Add alg_impossible.
6748         (alg_hash_entry): Add cost.
6749         (synth_mult): Record alg_impossible in the hash table if
6750         multiplication by a given integer is impossble within the
6751         limit.  Speed up using alg_impossible.
6752
6753 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6754
6755         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
6756         argument.  Allow and set any offset if needs_anyoffset is passed
6757         in.
6758         (get_constraint_for): Add argument here too.
6759         Pass it down.
6760         (do_structure_copy): Pass NULL to get_constraint_for.
6761         (handle_ptr_arith): Ditto.
6762         (find_func_aliases): Ditto.
6763
6764 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
6765
6766         PR rtl-optimization/23898
6767         * output.h (get_attr_min_length): Declare.
6768         * final.c (get_attr_length_1): New function, broken out of:
6769         (get_attr_length).
6770         (get_attr_min_length): New function.
6771         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
6772         (duplicate_computed_gotos): Likewise.
6773         * genattr.c (insn_min_length): Generate declaration.
6774         * genattrtab.c (min_fn, min_attr_value): New functions.
6775         (make_length_attrs): Generate insn_min_length.
6776
6777 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
6778
6779         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
6780
6781 2005-09-20  Richard Henderson  <rth@redhat.com>
6782
6783         PR tree-optimization/24059
6784         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
6785         EXPAND_STACK_PARM.
6786
6787 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
6788
6789         * c.opt (fextended-identifiers): New.
6790         * c-opts.c (c_common_handle_option): Handle
6791         -fextended-identifiers.
6792         * doc/cpp.texi: Update documentation of extended identifiers.
6793         * doc/cppopts.texi (-fextended-identifiers): Document.
6794
6795 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
6796
6797         PR tree-optimization/23929
6798         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
6799         if expr is NULL.
6800
6801         PR tree-optimization/23818
6802         * tree-stdarg.c (execute_optimize_stdarg): Call
6803         calculate_dominance_info.
6804
6805 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6806
6807         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
6808         (analyze_siv_subscript_cst_affine): Add weak SIV test.
6809         (compute_overlap_steps_for_affine_1_2): Use
6810         get_number_of_iters_for_loop.
6811         (analyze_subscript_affine_affine): Check whether difference is
6812         zero first.
6813         Use get_number_of_iters_for_loop.
6814         Check whether overlap occurs outside of bounds.
6815         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
6816
6817 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
6818
6819         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
6820         base register if possible.
6821
6822 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
6823
6824         PR tree-optimization/18463
6825         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
6826         converting it directly is not possible.
6827         (chrec_convert_aggressive): New function.
6828         * tree-chrec.h (chrec_convert_aggressive): Declare.
6829         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
6830         Fold chrec conversions aggressively if asked to.
6831         (instantiate_parameters): Modified because of changes in
6832         instantiate_parameters_1.
6833
6834 2005-09-19  Richard Henderson  <rth@redhat.com>
6835
6836         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
6837         (reduc_splus_v2df): New.
6838
6839 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
6840
6841         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
6842         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
6843
6844 2005-09-19  Richard Henderson  <rth@redhat.com>
6845
6846         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
6847         vcondu<SSEMODE12>.
6848
6849 2005-09-19  Richard Henderson  <rth@redhat.com>
6850
6851         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
6852         (ia64_expand_dot_prod_v8qi): New.
6853         * config/ia64/ia64-protos.h: Update.
6854         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
6855         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
6856         sdot_prodv8qi, sdot_prodv4hi): New.
6857         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
6858
6859 2005-09-19  Richard Henderson  <rth@redhat.com>
6860
6861         PR 23941
6862         * real.c (exact_real_truncate): Return false if the format cannot
6863         represent the number as a normal.
6864
6865         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
6866         for a memory source.
6867
6868 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
6869
6870         * tree-ssa-operands.c (swap_tree_operands): Export.
6871         * tree.h (swap_tree_operands): Declare.
6872         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
6873         Call swap_tree_operands.
6874
6875 2005-09-19  Richard Henderson  <rth@redhat.com>
6876
6877         * tree-flow.h (merge_alias_info): Declare.
6878         * tree-ssa-copy.c (merge_alias_info): Export.
6879         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
6880         (vect_create_data_ref_ptr): Use create_iv directly.
6881         (vectorizable_load): Use correct types for integer constants.
6882         (vect_generate_tmps_on_preheader): Likewise.
6883         (vect_gen_niters_for_prolog_loop): Likewise.
6884
6885 2005-09-19  Steven Bosscher  <stevenb@suse.de>
6886
6887         PR rtl-optimization/23943
6888         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
6889
6890 2005-09-18  Jan Hubicka  <jh@suse.cz>
6891
6892         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
6893
6894 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
6895
6896         * varasm.c (output_constant): Do not abort on conversions to union
6897         types between different sizes.
6898
6899 2005-09-18  Richard Guenther  <rguenther@suse.de>
6900
6901         PR middle-end/23944
6902         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
6903         fallback.
6904
6905 2005-09-18  Paul Brook  <paul@codesourcery.com>
6906
6907         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
6908
6909 2005-09-17  Richard Henderson  <rth@redhat.com>
6910
6911         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
6912         * tree-ssa-loop.c (pass_vect_dce): Remove.
6913         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
6914         of pass_vectorize.
6915
6916 2005-09-17  Richard Henderson  <rth@redhat.com>
6917
6918         * tree-pass.h (pass_vect_dce): Declare.
6919         * passes.c (init_optimization_passes): Add it.
6920         * tree-flow.h (tree_ssa_dce): Declare.
6921         * tree-ssa-dce.c (tree_ssa_dce): Export.
6922         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
6923         (gate_tree_vectorize): ... here.
6924         (pass_vect_dce): New.
6925
6926 2005-09-17  Jan Hubicka  <jh@suse.cz>
6927
6928         * except.c (struct eh_status): Turn region_array into vec.
6929         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
6930         convert_from_eh_region_ranges, find_exception_handler_labels,
6931         current_function_has_exception_handlers, assign_filter_values,
6932         build_post_landing_pads, dw2_build_landing_pads,
6933         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
6934         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
6935         foreach_reachable_handler, can_throw_internal_1,
6936         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
6937         region_array.
6938         (duplicate_eh_region_1): Update region_array.
6939         (duplicate_eh_regions): Resize region_array and avoid recomputing.
6940
6941 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
6942
6943         PR middle-end/22067
6944         * expmed.c (expand_mult): Substitute simple register for op0 when
6945         computing max_cost.
6946
6947 2005-09-17  Richard Henderson  <rth@redhat.com>
6948
6949         * expr.c (emit_move_via_integer): Add force argument, pass it on
6950         to emit_move_change_mode.  Update callers.
6951         (emit_move_complex): Pass true to new force argument.
6952         * function.c (expand_function_end): Move expand_eh_return call
6953         earlier.  Merge sub-word complex values into a pseudo before
6954         copying to the return hard register.
6955
6956 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
6957
6958         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
6959         between different sizes.
6960
6961 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
6962
6963         PR 23903
6964
6965         * passes.c (init_optimization_passes): Register dump files for
6966         IPA passes first.
6967
6968 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
6969
6970         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
6971         * config/s390/s390.c (s390_overlap_p): New function.
6972         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
6973         peephole2, "*xc" peephole2): Added overlap check to the peephole2
6974         condition.
6975
6976 2005-09-16  Richard Guenther  <rguenther@suse.de>
6977
6978         * ipa-pure-const.c (static_execute): Free auxiliar information.
6979         * ipa-type-escape.c (discover_unique_type): Free temporary key.
6980         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
6981
6982 2005-09-15  DJ Delorie  <dj@redhat.com>
6983
6984         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
6985
6986 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6987
6988         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6989         to order operands.
6990         (swap_commutative_operands_with_target): New.
6991
6992 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
6993
6994         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
6995         parameter.
6996         Update callers.
6997         (estimate_iters_using_array): New function.
6998         * tree-data-ref.h (estimate_iters_using_array): Prototype
6999         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
7000         Use estimate_iters_using_array instead of analyze_array.
7001
7002 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
7003
7004         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
7005         as addressable.
7006
7007 2005-09-15  Michael Matz  <matz@suse.de>
7008
7009         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
7010
7011 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
7012
7013         PR tree-optimization/23835
7014         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
7015         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
7016
7017 2005-09-14  Richard Henderson  <rth@redhat.com>
7018
7019         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
7020         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
7021
7022 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
7023
7024         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
7025         in the ARRAY_TYPE case.
7026
7027 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
7028
7029         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
7030
7031 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
7032
7033         PR middle-end/22480
7034         * tree-vect-transform.c (vectorizable_operation): Return false for
7035         scalar shift operations and for vector shift operations with
7036         non-invariant shift arguments.  Use scalar tree operand op1 as
7037         a shift operand when vector shift insn pattern uses scalar shift
7038         operand.
7039         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
7040
7041 2005-09-14  Olivier Hainque  <hainque@adacore.com>
7042
7043         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
7044         value if it has side-effects.
7045
7046 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
7047
7048         PR target/22068
7049         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
7050
7051 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
7052
7053         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
7054         passed as NAME as if it were label at start of function code.
7055
7056 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
7057
7058         * config/sh/sh.md (*movv4sf_i): Add general register cases to
7059         the constraints.
7060
7061 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
7062
7063         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
7064         as early clobber.  Rewrite so the PIC register is not implicitly used.
7065
7066 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7067
7068         * tree.c (annotate_with_file_line): Compare line numbers before
7069         file names.
7070
7071 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
7072
7073         PR target/23816
7074         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
7075         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
7076
7077 2005-09-13  Ian Lance Taylor  <ian@airs.com>
7078
7079         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
7080         than a HOST_WIDEST_INT to gen_doloop_begin.
7081
7082 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
7083
7084         * tree-dfa.c (dump_variable): Guard against NULL annotations.
7085
7086 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
7087
7088         PR tree-optimize/23817
7089         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
7090
7091 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
7092
7093         PR target/23774
7094         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
7095         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
7096         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
7097         (restore_stack_nonlocal): Likewise.
7098         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
7099
7100 2005-09-12  Ian Lance Taylor  <ian@airs.com>
7101
7102         PR g++/7874
7103         * c.opt (ffriend-injection): New C++ option.
7104         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
7105         (C++ Dialect Options): Document -ffriend-injection.
7106
7107 2005-09-12  Josh Conner  <jconner@apple.com>
7108
7109         PR middle-end/23237
7110         * ipa-reference.c (static_execute): Don't mark variables in
7111         named sections TREE_READONLY.
7112
7113 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
7114
7115         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
7116         stack_tie.
7117
7118 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
7119
7120         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
7121         V_MUST_DEF instead of just the first_use_p.
7122         Don't mark the virtual variables for renaming on the statement which
7123         is being removed.
7124         (pass_dse): Remove TODO_update_ssa.
7125
7126 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
7127
7128         PR middle-end/23290
7129         * stor-layout.c (compute_record_mode): For records with a single
7130         field, actually check the field's mode size against the type size.
7131
7132         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
7133         registers for TARGET_SHMEDIA.
7134         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
7135         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
7136         of GENERAL_REGS and FP_REGS.
7137
7138 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
7139
7140         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
7141
7142 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
7143
7144         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
7145         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
7146         are omitted.  Exclude stack_tie insn too.
7147
7148 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
7149
7150         PR rtl-optimization/23098
7151         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
7152         0.0f is easy.
7153         * config/rs6000/rs6000.md (movdf splitter): Use
7154         const_double_operand predicate for TARGET_POWERPC64.
7155         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
7156         SYMBOL_REF method to ABI_V4.
7157
7158         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
7159         replace_equiv_address.
7160         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
7161         rs6000_sr_alias_set and MEM_NOTRAP.
7162         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
7163
7164 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
7165
7166         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
7167         handle CALL_EXPR again.
7168
7169 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
7170
7171         * arm/predicates.md (alignable_memory_operand): Delete.
7172
7173 2005-09-10  Richard Henderson  <rth@redhat.com>
7174
7175         PR debug/23806
7176         * dbxout.c (dbxout_expand_expr): New.
7177         (dbxout_symbol): Use it.
7178
7179 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
7180
7181         * arm.c (arm_gen_rotated_half_load): Delete.
7182         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
7183         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
7184         (thumb_set_return_address): Likewise.
7185         (thumb_load_double_from_address): Use adjust_address.
7186         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
7187         (extendhsisi2_mem, movhi_bytes): Use change_address.
7188         (movhi): Use widen_memory_access.
7189         (reload_out_df): Use replace_equiv_address.
7190         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
7191
7192 2005-09-09  Richard Henderson  <rth@redhat.com>
7193
7194         PR debug/20998
7195         * dbxout.c: Include expr.h.
7196         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
7197         (dbxout_symbol): Handle DECL_VALUE_EXPR.
7198         * Makefile.in (dbxout.o): Add EXPR_H.
7199
7200 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
7201
7202         PR tree-optimization/23509
7203         * tree-cfg.c (replace_uses_by): Use replace_exp.
7204         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
7205         pointers have name_mem_tag or type_mem_tag set.
7206
7207 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
7208
7209         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
7210         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
7211         of wrongly accessing operands.
7212
7213 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
7214
7215         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
7216         * tree-chrec.c: Include tree-scalar-evolution.h.
7217         (chrec_convert): Instantiate the base and step before calling
7218         scev_probably_wraps_p that would fail on parametric evolutions.
7219         Collect all the fails into a single section failed_to_convert,
7220         print a diagnostic, and return chrec_dont_know instead of calling
7221         fold_convert.
7222         * tree-scalar-evolution.c (loop_closed_phi_def): New.
7223         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
7224         phi nodes.
7225         (scev_const_prop): Don't replace the definition of a loop closed ssa
7226         phi node by itself, or by another loop closed ssa phi node.
7227         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
7228         that base and step are defined.
7229
7230 2005-09-09  Richard Guenther  <rguenther@suse.de>
7231
7232         PR c++/23624
7233         * fold-const.c (fold_ternary): Check truth_value_p before
7234         calling invert_truthvalue.
7235
7236 2005-09-09  Nick Clifton  <nickc@redhat.com>
7237
7238         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
7239         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
7240         dimension of these arrays.
7241         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
7242         these arrays.
7243         * longlong.h: Only provide a prototype for the __clz_tab[] array
7244         if this header has not been included from libgcc2.h.
7245         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
7246         defining own types.
7247         Provide prototypes for exported functions.
7248         Use the __clz_tab[] and __popcount_tab[] arrays provided by
7249         libgcc2.c.
7250
7251 2005-09-08  Josh Conner  <jconner@apple.com>
7252
7253         PR c++/21135
7254         PR c++/23180
7255         * expr.c (expand_expr_addr_expr_1): Don't invoke
7256         expand_simple_binop for EXPAND_INITIALIZER.
7257
7258 2005-09-08  Richard Henderson  <rth@redhat.com>
7259
7260         PR debug/23190
7261         * toplev.c (wrapup_global_declaration_1): Split out ...
7262         (wrapup_global_declaration_2): ... from ...
7263         (wrapup_global_declarations): ... here.  Return bool.
7264         (check_global_declaration_1): Split out ...
7265         (check_global_declarations): from here.
7266         (emit_debug_global_declarations): New.
7267         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
7268         check_global_declaration_1, emit_debug_global_declarations): Declare.
7269         * c-decl.c (c_write_global_declarations_1): Don't create a vector
7270         of decls.  Call wrapup_global_declaration_1,
7271         wrapup_global_declaration_2, check_global_declaration_1 directly.
7272         (c_write_global_declarations_2): New.
7273         (ext_block): New.
7274         (c_write_global_declarations): Call c_write_global_declarations_2.
7275         * langhooks.c (write_global_declarations): Call
7276         emit_debug_global_declarations.
7277
7278         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
7279         remove decls that have DECL_RTL_SET_P.
7280         * passes.c (rest_of_decl_compilation): Invoke
7281         cgraph_varpool_finalize_decl for all but functions.
7282
7283 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7284
7285         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
7286         the result of a conversion if the new min and max cannot be compared.
7287
7288 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
7289
7290         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
7291         (override_options): Setting s390_sr_alias_set removed.
7292         (save_fpr, save_gprs): Set alias set to vararg or frame.
7293         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
7294         s390_sr_alias_set with get_frame_alias_set ().
7295         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
7296         get_varargs_alias_set ().
7297
7298 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
7299
7300         PR objc/20574
7301         PR objc/19324
7302         * c-parser.c (c_parser_objc_method_definition): If the next
7303         token is not "{", error out and don't start the function.
7304
7305 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
7306
7307         * tree-vrp.c (extract_range_from_expr): Move the check for non
7308         nullness after the check for gimple invariant.
7309
7310 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7311
7312         * tree.c (host_integerp, tree_low_cst): Correct function comment.
7313
7314 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7315
7316         PR target/23747
7317         * config/m32r.md (movmemsi_internal): Canonicalize order of
7318         operands in PLUS component of template.
7319
7320 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7321
7322         * reload1.c (fixup_eh_region_note): Remove assertion.
7323         (fixup_abnormal_edges): Reverted removal of call to
7324         find_many_sub_basic_blocks made on 2005-08-31.
7325
7326 2005-09-07  Richard Henderson  <rth@redhat.com>
7327
7328         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
7329         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
7330         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
7331         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
7332         rearrange for better packing.
7333         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
7334         (lookup_cfa_1): Remove inline marker.
7335         (cfa_equal_p): Split out of ...
7336         (def_cfa_1): ... here.  Use INVALID_REGNUM.
7337         (build_cfa_loc): Handle !cfa->indirect.
7338         (frame_pointer_cfa_offset): New.
7339         (dbx_reg_number): Assert register elimination performed; do
7340         leaf register remapping.
7341         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
7342         (eliminate_reg_to_offset): New.
7343         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
7344         for verifiably local stack frame addresses; re-base to CFA.
7345         (mem_loc_descriptor): Remove can_use_fbreg argument.
7346         (concat_loc_descriptor, loc_descriptor): Likewise.
7347         (containing_function_has_frame_base): Remove.
7348         (rtl_for_decl_location): Don't do register elimination or
7349         leaf register remapping here.
7350         (secname_for_decl): Split out from ..
7351         (add_location_or_const_value_attribute): ... here.
7352         (convert_cfa_to_loc_list): New.
7353         (compute_frame_pointer_to_cfa_displacement): New.
7354         (gen_subprogram_die): Use them.
7355         * tree.h (frame_base_decl): Remove.
7356         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
7357         (prologue_stack_adjust): Remove.
7358         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
7359         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
7360         (set_frame_base_location): Remove.
7361         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
7362         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
7363         (vt_add_function_parameters): Don't eliminate_regs.
7364         (vt_initialize): Don't create frame_base_decl.
7365
7366 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7367
7368         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
7369         version of GNU binutils for 4.x and later.
7370
7371 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
7372
7373         * ggc-page.c (ggc_push_context): Remove.
7374         (ggc_pop_context): Likewise.
7375         * ggc.h (ggc_push_context): Remove.
7376         (ggc_pop_context): Likewise.
7377
7378 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7379
7380         PR target/8973
7381         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
7382         returning from an interrupt handler.
7383
7384 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7385
7386         PR target/8972
7387         * config/arc/arc.c (output_shift): Add check for loop count when
7388         optimizing.
7389
7390 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7391
7392         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
7393         form manually.
7394         (abs_replacement): Likewise.
7395         (pass_phiopt): Remove TODO_update_ssa.
7396
7397 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7398
7399         PR c/23075
7400         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
7401         if "return with no value, in function returning non-void" warning
7402         has been issued.
7403         * tree-cfg.c (execute_warn_function_return): Don't look at
7404         RETURN_EXPRs with TREE_NO_WARNING set.
7405
7406         PR target/22362
7407         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
7408         for internal functions doesn't use registers used by global registers
7409         variables.  Use fewer register parameters if there are global register
7410         variables.
7411
7412 2005-09-06  Olivier Hainque  <hainque@adacore.com>
7413             Eric Botcazou  <ebotcazou@adacore.com>
7414
7415         PR middle-end/14997
7416         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
7417         when we would be extracting outside its bit span (bitpos+bitsize
7418         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
7419         Ada unchecked conversions.
7420
7421 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7422
7423         * tree-ssa-pre.c (try_look_through_load): New function.
7424         (compute_avail): Use it to try to look through loads for some
7425         more useful expressions.
7426
7427 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7428
7429         * simplify-rtx.c (simplify_binary_operation_1): Correct the
7430         condition for detecting cases like (a&a) and (a^a).
7431
7432 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
7433
7434         * common.opt: Add option ftree-vect-loop-version.
7435         * params.def: Add --param vect-max-version-checks.
7436         * doc/invoke.texi: Document ftree-vect-loop-version and
7437         --param vect-max-version-checks.
7438         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
7439         may_misalign_stmts and defines for accessors.
7440         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
7441         LOOP_VINFO_MAY_MISALIGN_STMTS.
7442         (destroy_loop_vec_info): VEC_free for
7443         LOOP_VINFO_MAY_MISALIGN_STMTS.
7444         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7445         Update documentation.
7446         (vect_update_misalignment_for_peel): New.
7447         (vect_enhance_data_refs_alignment): Update to choose loop
7448         peeling or loop versioning if appropriate for the (potentially)
7449         unaligned data references in the loop.
7450         (vect_analyze_data_refs_alignment): Remove call to
7451         vect_enhance_data_refs_alignment so the checks can be done
7452         earlier.
7453         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
7454         and move up call to vect_analyze_data_refs_alignment.
7455         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
7456         (vect_transform_loop): Add call to loop_version.
7457
7458 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7459
7460         PR rtl-optimization/23098
7461         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
7462         * simplify-rtx.c (constant_pool_reference_p): New function.
7463         * rtl.h (constant_pool_reference_p): New prototype.
7464         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
7465         constant_pool_reference_p in condition and
7466         avoid_constant_pool_reference in preparation statements.
7467
7468 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7469
7470         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
7471         STRICT_LOW_PART SETs.
7472
7473 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
7474
7475         PR middle-end/21460
7476         * except.c (sjlj_emit_function_enter): Find the function begin
7477         note even when it's not in first basic block.
7478
7479 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
7480
7481         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
7482         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
7483         * aclocal.m4: Regenerate.
7484
7485 2005-09-05  DJ Delorie  <dj@redhat.com>
7486
7487         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
7488         of macro.
7489
7490 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
7491
7492         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
7493         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
7494         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
7495         Follow spelling conventions.
7496         * doc/invoke.texi: Follow spelling conventions.
7497
7498 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7499
7500         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
7501         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
7502         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
7503
7504 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7505
7506         PR target/23683
7507         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
7508         (output_stack_adjust): Use gen_tmp_stack_mem.
7509         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
7510         (sh_set_return_address, sh_allocate_initial_value): Likewise.
7511         (sh_get_pr_initial_val): Likewise.
7512         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
7513         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
7514         * sh.md (divsi_inv_m0): Use gen_const_mem.
7515         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
7516         (movdf_i4+1): Use gen_tmp_stack_mem.
7517         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
7518         (fpu_switch+2): Likewise.
7519         (movv4sf_i, movv16sf_i): Use adjust_address.
7520         (symGOT_load): Set MEM_NOTRAP_P bit.
7521
7522 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7523
7524         PR target/23721
7525         * pa.c (emit_move_sequence): Fix typo in last change.
7526
7527 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
7528
7529         PR rtl-optimization/23454
7530         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
7531         is true.
7532
7533 2005-09-03  Richard Henderson  <rth@redhat.com>
7534             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7535
7536         PR middle-end/23671
7537         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
7538         gen_rtx_MEM.
7539
7540 2005-09-02  Nicolas Pitre <nico@cam.org>
7541
7542         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
7543         to bit_count to 32 bits.
7544
7545 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
7546
7547         PR c++/23167
7548         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
7549         generating synthetic loads from volatile lvalues.
7550
7551 005-09-02  Nick Clifton  <nickc@redhat.com>
7552
7553         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
7554         __ctzhi2, __clzhi2): New functions.
7555
7556 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
7557
7558         PR middle-end/23547
7559         * tree-nested.c (struct var_map_elt): Mark with GTY.
7560         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
7561         var_map_elt.
7562         (lookup_field_for_decl): Allocate new element in GC memory.
7563         (lookup_tramp_for_decl): Likewise.
7564         (convert_nl_goto_reference): Likewise
7565         (create_nesting_tree): Allocate info in GC memory. Likewise for
7566         info->var_map.
7567         (free_nesting_tree): Free with ggc_free instead of free.
7568         (root): New static variable.
7569         (lower_nested_functions): Remove root as local variable.  And zero out
7570         root at the end of the function.
7571
7572 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
7573
7574         PR rtl-optimization/20365
7575         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
7576         to short.  New member ix.
7577         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
7578         (simplify_plus_minus): Initialize ix members before calling qsort.
7579
7580 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
7581
7582         PR tree-optimization/23626
7583         * tree-cfg.c (replace_uses_by): Clean up eh info.
7584
7585 2005-09-01  DJ Delorie  <dj@redhat.com>
7586
7587         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
7588         fprintf.
7589
7590 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
7591
7592         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
7593         (rs6000_split_multireg_move): Use replace_equiv_address instead of
7594         gen_rtx_MEM.
7595
7596 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7597
7598         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
7599         do not issue warning for a variable definition following
7600         a declaration.
7601
7602 2005-09-01  Richard Henderson  <rth@redhat.com>
7603
7604         PR 23668
7605         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
7606         conversion to CONST_VECTOR.
7607
7608 2005-09-01  Richard Henderson  <rth@redhat.com>
7609
7610         PR 23676
7611         * reload1.c (reload_as_needed): Check !CALL_P before calling
7612         fixup_eh_region_note.
7613         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
7614
7615 2005-09-01  DJ Delorie  <dj@redhat.com>
7616
7617         * varasm.c (output_constant): Let the target resolve
7618         conversions of addresses to non-default pointer sizes.
7619
7620 2005-09-01  Nicolas Pitre <nico@cam.org>
7621
7622         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
7623         to alow matching ARM pre-indexed addressing mode.
7624         (arm_override_options): Remove now irrelevant comment.
7625
7626 2005-09-01  Phil Edwards  <phil@codesourcery.com>
7627
7628         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
7629         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
7630         * config/i386/vxworks.h:  Likewise.
7631         * config/i386/t-vxworksae:  New file, for VxWorks AE.
7632         * config/i386/vxworksae.h:  Likewise.
7633
7634 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
7635
7636         PR tree-optimization/23410
7637         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
7638         sequence is not wrapping during the first step.
7639
7640 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7641
7642         PR debug/7241
7643         * dwarf2out.c (base_type_die): Compare char_type_node with
7644         TYPE_MAIN_VARIANT (type), not type.
7645
7646 2005-09-01  Richard Guenther  <rguenther@suse.de>
7647
7648         PR tree-optimization/15366
7649         * common.opt: Add -finline-functions-called-once.
7650         Put -fearly-inlining in alphabetically ordered place.
7651         * doc/invoke.texi: Document new option.
7652         * ipa-inline.c (cgraph_decide_inlining): Honour
7653         flag_inline_functions_called_once.
7654
7655 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7656
7657         PR rtl-optimization/23478
7658         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
7659         (alloc_qty): Initialize it.
7660         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
7661         (combine_regs): Combine also n_throwing_calls_crossed fields.
7662         (find_free_reg): Don't attempt to caller-save pseudos crossing
7663         calls that might throw.
7664         * global.c (struct allocno): Add throwing_calls_crossed field.
7665         (global_alloc): Revert 2005-08-22 change.  Initialize
7666         throwing_calls_crossed.
7667         (find_reg): Don't attempt to caller-save pseudos crossing calls that
7668         might throw.
7669
7670 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
7671
7672         PR target/23649
7673         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
7674         (mask64_operand): Reinstate code prior to 2005-06-11 change.
7675         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
7676         (and64_2_operand): Tweak to use predicate.
7677         (and_operand): Adjust for mask_operand changes.
7678         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
7679         (print_operand): Likewise.
7680         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
7681         (mask64_1or2_operand): Delete.
7682         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
7683         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
7684         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
7685         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
7686         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
7687         (rotldi3_internal4): Likewise.
7688         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
7689         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
7690         (ashldi3_internal7): Likewise.
7691         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
7692         (ashldi3_internal, ashldi3_internal9 split): Likewise.
7693         (anddi3 split): Don't match mask64_operand.
7694         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
7695         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
7696         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
7697         't' splitter predicate.
7698         (movdi_internal64 + 2): Revert 2005-06-11 change.
7699
7700 2005-08-31  DJ Delorie  <dj@redhat.com>
7701
7702         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
7703         (m32c_asm_integer): Add support for 32 bit pointers.
7704
7705 2005-08-31  Richard Henderson  <rth@redhat.com>
7706
7707         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
7708         component-like references for setting MEM_NOTRAP_P.
7709
7710         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
7711         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
7712
7713 2005-08-31  Richard Henderson  <rth@redhat.com>
7714
7715         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
7716         into a pseudo before applying gen_lowpart.
7717
7718 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
7719
7720         * doc/install.texi (Specific): Update cctools version required
7721         for full functionality.
7722         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
7723         linkers as -macosx_version_min.
7724
7725 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
7726
7727         PR target/21255
7728         * sh.c (print_operand, %R and %S): Add handling of floating point
7729         registers, memory, constants and invalid operands.
7730
7731 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
7732
7733         * ipa-pure-const.c: Change dump name.
7734
7735 2005-08-31 Uros Bizjak <uros@kss-loka.si>
7736
7737         PR target/23570
7738         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
7739         to "reg_or_0_operand".
7740         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
7741
7742 2005-08-31  Dale Johannesen  <dalej@apple.com>
7743
7744         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
7745         loops that count down.
7746
7747 2005-08-31  Richard Henderson  <rth@redhat.com>
7748
7749         PR rtl-opt/23601
7750         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
7751         (fixup_eh_region_note): New.
7752         (reload_as_needed): Call it.
7753         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
7754         don't call find_many_sub_basic_blocks; call verify_flow_info.
7755         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
7756         (keep_stack_depressed): Likewise.
7757         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
7758
7759 2005-08-31  Richard Henderson  <rth@redhat.com>
7760
7761         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
7762         fp return matching.
7763
7764 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
7765
7766         * expr.c (expand_expr_real_1): Compare size of address
7767         mode to target's address mode size in deciding expansion of
7768         the constant address.
7769
7770 2005-08-31  Richard Guenther  <rguenther@suse.de>
7771
7772         PR middle-end/23477
7773         * expr.c (all_zeros_p): New function.
7774         (expand_expr_real_1): Handle the case of an all-zero
7775         non-addressable constructor separately.
7776
7777 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
7778
7779         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
7780         arguments, adjust all callers.
7781         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
7782
7783 2005-08-30  Richard Henderson  <rth@redhat.com>
7784
7785         PR target/23630
7786         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
7787         whenever the mode sizes match.
7788
7789 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
7790
7791         * calls.c (load_register_parameters): Fix comment typo.
7792         * expr.c (emit_push_insn): Comment formatting.
7793
7794 2005-08-30  Ian Lance Taylor  <ian@airs.com>
7795
7796         * config/i386/x-cygwin (host-cygwin): Change dependency from
7797         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
7798
7799 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
7800
7801         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
7802         parts of 'vals'.
7803
7804 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
7805
7806         PR middle-end/23408
7807         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
7808         call to ggc_collect.
7809
7810 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
7811
7812         PR bootstrap/21268
7813         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
7814         beginning.  Remove $(INCLUDES) from all the rules, if following
7815         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
7816
7817 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
7818
7819         PR middle-end/23484
7820         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
7821         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
7822         not constant, but maxlen is, don't set len to maxlen, rather
7823         set maxlen to len if len is a constant.
7824
7825 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
7826
7827         PR tree-optimization/23475
7828         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
7829         and counts.
7830
7831 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
7832
7833         Fix PR middle-end/22455
7834
7835         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
7836         Checksum only the parts of the tree that exist for the tree code.
7837
7838 2005-08-28  Dale Johannesen  <dalej@apple.com>
7839
7840         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
7841
7842 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
7843
7844         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
7845
7846 2005-08-28  Richard Henderson  <rth@redhat.com>
7847
7848         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
7849         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
7850         of char_type_node.
7851
7852 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
7853
7854         PR ada/23593
7855         * builtins.c (get_memory_rtx): Don't strip nops
7856         in between COMPONENT_REFs.
7857
7858 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
7859
7860         PR middle-end/23463
7861         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
7862         types.
7863         (gimplify_modify_expr): Check for zero sized types and gimplify the
7864         rhs and lhs as statements.
7865
7866 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
7867
7868         PR libgcj/23508
7869         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
7870         state for return address column of signal frames.
7871
7872 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
7873
7874         PR target/23539
7875         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
7876         bytes >= 2 not bytes == 2.
7877         (expand_block_move): Same.
7878
7879 2005-08-27  Richard Guenther  <rguenther@suse.de>
7880
7881         PR target/23575
7882         * config/i386/sse.md (sse2_movsd): Add missing closing
7883         braces.
7884
7885 2005-08-27  Paul Brook  <paul@codesourcery.com>
7886
7887         * genrecog.c (enum decision_type): Add DT_num_insns.
7888         (struct decision_test): Add u.num_insns.
7889         (add_to_sequence): Add DT_num_insns test.
7890         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
7891         (write_cond, debug_decision_2): Ditto.
7892         (change_state): Assume peep2_next_insn never fails.
7893         Remove "afterward" argument.
7894         (write afterward, write_tree): Update to match.
7895         * recog.c (peep2_current_count): New variable.
7896         (peep2_next_insn): Check it.
7897         (peephole2_optimize): Set peep2_current_count.
7898         * recog.h (peep2_current_count): Declare.
7899
7900 2005-08-26  Josh Conner  <jconner@apple.com>
7901
7902         PR middle-end/23584
7903         * ipa-pure-const.c (check_tree): Check for volatile-ness
7904         when considering a dereference.
7905
7906 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
7907
7908         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
7909
7910 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7911
7912         PR rtl-optimization/23561
7913         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
7914         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
7915         at most LEN bytes long memory fits into the field.
7916         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
7917         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
7918         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
7919
7920 2005-08-26  Richard Henderson  <rth@redhat.com>
7921
7922         PR rtl-opt/23560
7923         * loop.c (biased_biv_may_wrap_p): New.
7924         (maybe_eliminate_biv_1): Use it to suppress non-equality
7925         comparison transformations.  Delete disabled code.
7926
7927 2005-08-26  Ian Lance Taylor  <ian@airs.com>
7928
7929         * combine.c (make_extraction): Avoid reference outside object.
7930
7931 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
7932
7933         * stor-layout.c (finalize_type_size): Restore behaviour for
7934         non-aggregate types to the status quo ante of the patch for
7935         pr 23467.  Document why it matters.
7936
7937 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7938
7939         PR c/23506
7940         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
7941         array by one element, initialize the BT_LAST element with NULL.
7942
7943 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
7944
7945         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
7946         optimizing for size.
7947         (plus_eqsi): Same.
7948         (compare_plus_eqsi): Same.
7949         (plus_eqsi_compare): Same.
7950         (neg_eq0<mode>): Same.
7951         (neg_eq<mode>): Same.
7952
7953         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
7954         PROCESSOR_POWER4.
7955
7956 2005-08-26  Nick Clifton  <nickc@redhat.com>
7957
7958         * config/v850/v850.c (ep_memory_operand): Return FALSE if
7959         TARGET_EP is not defined.
7960         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
7961         TARGET_EP is enabled.
7962         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
7963         * config/v850/v850.md (save_all_interrupt): Only use the EP
7964         register if TARGET_EP is defined.
7965         (restore_all_interrupt): Likewise.
7966         * config/v850/lib1funcs.asm: Update functions so that the EP
7967         register is only used if __EP__ is defined.
7968
7969 2005-08-26  David Ung  <davidu@mips.com>
7970
7971         * config/mips/mips.c (mips_expand_prologue): Handle case when
7972         generating for MIPS16 and the outgoing argument area is more than
7973         SMALL_OPERAND. Use the frame pointer as temporary to generate the
7974         add instruction.
7975
7976 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
7977
7978         * config/crx/crx.md: Make doloop_end pattern usage controllable
7979         via mloop-nesting=<max-nesting> command line switch. Make sure
7980         the combiner cannot use doloop_end_<mode> in an illegal way.
7981         * config/crx/crx.c: Use regs up to r6 for argument passing.
7982         Refine crx_address_cost (non cst4 displacements are expensive).
7983         * config/crx/crx.opt: Add switch for mloop-nesting=.
7984
7985 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
7986
7987         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
7988         (UNSPEC_MVST): New constant.
7989
7990 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
7991
7992         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
7993         Reject operands containing eliminable registers.
7994         * testsuite/gcc.dg/20050825-1.c: New testcase.
7995
7996 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7997             Jan Hubicka  <jh@suse.cz>
7998
7999         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
8000
8001 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
8002
8003         PR tree-optimization/23546
8004         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
8005         and REAL_CST nodes.
8006
8007 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
8008
8009         * params.def (PARAM_MIN_SPEC_PROB): New.
8010         * sched-rgn.c (MIN_PROBABILITY): Delete.
8011         (compute_trg_info): Convert to PARAM_VALUE.
8012         * doc/invoke.texi (param): Document min-spec-prob.
8013
8014 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
8015
8016         * config/darwin.h: define __PIC__
8017         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
8018         TARGET_OS_CPP_BUILTINS macro.
8019
8020 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
8021
8022         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
8023         yesterday.
8024
8025 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
8026
8027         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
8028         to duplicate_block.
8029         * cfghooks.c (duplicate_block): Added position where to place
8030         new block as argument.
8031         * cfghooks.h (duplicate_block): Declaration changed.
8032         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
8033         duplicate_block.
8034         * cfglayout.h (copy_bbs): Declaration changed.
8035         * cfgloop.h (loop_version): Declaration changed.
8036         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
8037         position to copy_bbs.
8038         (loop_version): Pass position to duplicate_loop_to_header_edge.
8039         Add place_after argument and position new blocks according to
8040         it.
8041         * modulo-sched.c (sms_schedule): Pass place_after argument
8042         to loop_version.
8043         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
8044         * tree-cfg.c (split_edge_bb_loc): New function.
8045         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
8046         to determine position of new blocks.
8047         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
8048         to loop_version.
8049         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
8050         argument to duplicate_block.
8051         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
8052         Pass position to copy_bbs.
8053
8054 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
8055
8056         * fold-const.c (ptr_difference_const): Use
8057         cst_and_fits_in_hwi instead of host_integerp.
8058
8059 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
8060
8061         * config/darwin.c (gen_pic_offset): New.
8062         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
8063         Use it.
8064
8065 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
8066
8067         PR tree-optimization/23486
8068         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
8069
8070 2005-08-23  Phil Edwards  <phil@codesourcery.com>
8071
8072         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
8073         remove use_collect2.
8074         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
8075
8076         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
8077         configuration files to override the default value.
8078
8079         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
8080         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
8081         * config/vx-common.h:  New file, split out from...
8082         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
8083         * config/vxworksae.h:  New file, for VxWorks AE.
8084         * config/vxworks.opt:  New file.
8085         * config/vxlib.c:  Update for VxWorks 6.
8086
8087         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
8088         other MULTILIB_* variables appropriately.
8089         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
8090         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
8091         * config/rs6000/vxworks.h:  Update for VxWorks 6.
8092         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
8093
8094 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
8095
8096         PR target/20799
8097         * config/darwin.c (machopic_select_section): Remove the hack to
8098         mark "::operator new" and "::operator delete" for coalescing
8099         even though they are not weak.
8100
8101 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
8102
8103         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
8104         * configure: Regenerate.
8105
8106 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
8107
8108         PR middle-end/23517
8109         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
8110         between vectors.
8111         * convert.c (convert_to_integer, convert_to_vector): Likewise.
8112         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
8113         Likewise.
8114
8115 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
8116
8117         * config/rs6000/predicates.md (equality_operator): New.
8118         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
8119         comparison with a large constant.
8120
8121 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
8122
8123         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
8124
8125 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
8126
8127         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
8128         registers is even, and we have a hardware double precision fp,
8129         align the buffer.
8130         (sh_gimplify_va_arg_expr): For floating point arguments, consider
8131         size of current argument when checking if argument was passed in
8132         registers.
8133
8134         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
8135
8136         PR middle-end/23467
8137         * stor-layout.c (finalize_type_size): Dont override
8138         existing alignment with a smaller alignment from the mode.
8139
8140 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
8141
8142         * lambda-code.c (lambda_vector_lexico_pos): Moved...
8143         * lambda.h (lambda_vector_lexico_pos): ... here.
8144         * tree-data-ref.c (build_classic_dist_vector): Return false when
8145         the distance vector is lexicographically negative.
8146
8147 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
8148
8149         PR tree-optimization/23511
8150         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
8151         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
8152
8153 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
8154
8155         PR tree-optimization/22043
8156         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
8157         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
8158         If ALLOW_FLEXARR, handle types ending with flexible array member.
8159         Pass false as second argument to recursive count_type_elements calls.
8160         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
8161         argument to count_type_elements call.
8162         * tree-sra.c (decide_block_copy): Likewise.
8163         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
8164         for a constant-sized object, set cleared as well.  Pass true as
8165         second argument to count_type_elements call.
8166
8167 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
8168
8169         PR target/21571
8170         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
8171         from legitimate_small_data_p, and make global.  Update use.
8172         Remove forward declaration.
8173         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
8174         Declare.
8175         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
8176
8177 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
8178
8179         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
8180         of scratch intermediates.
8181         (eq<mode>_compare): Same.
8182         (neg_eq0<mode>): New.
8183         (neg_eq<mode>): Convert to define_insn_and_split.
8184
8185 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
8186
8187         PR target/23070
8188         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
8189         stdarg functions, set/clear the fp marker even when no variable
8190         args are passed.
8191         * config/rs6000/sysv4.opt (mprototype): Describe.
8192
8193 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
8194
8195         PR rtl-optimization/23478
8196         * regs.h (reg_info): Add throw_calls_crossed.
8197         (REG_N_THROWING_CALLS_CROSSED): Define.
8198         * flow.c (allocate_reg_life_data): Initialize
8199         REG_N_THROWING_CALLS_CROSSED.
8200         (propagate_one_insn, attempt_auto_inc): Update
8201         REG_N_THROWING_CALLS_CROSSED.
8202         * global.c (global_alloc): Don't allocate pseudos across
8203         calls that may throw.
8204
8205 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
8206
8207         PR c/18715
8208         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
8209         value is inbetween the range if we did not find an exact match.
8210
8211 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
8212
8213         * doc/invoke.texi (Option Summary): Add ms1 options.
8214         * doc/extend.texi: Document interrupt handler attribute for ms1.
8215         * doc/md.texi: Document ms1 constraints.
8216         * config.gcc: Add ms1-*-elf.
8217         * config/ms1/ms1.h: New.
8218         * config/ms1/ms1.c: New.
8219         * config/ms1/ms1.md: New.
8220         * config/ms1/ms1-protos.h: New.
8221         * config/ms1/ABI.txt: New.
8222         * config/ms1/crti.asm: New.
8223         * config/ms1/crtn.asm: New.
8224         * config/ms1/lib2extra-funcs.c: New.
8225         * config/ms1/t-ms1: New.
8226         * config/ms1/ms1.opt: New.
8227
8228 2005-08-22 Ira Rosen <irar@il.ibm.com>
8229
8230         * config/rs6000/altivec.md (xorv4sf3): New.
8231         (negv4sf2, neg<mode>2): Likewise.
8232
8233 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
8234
8235         PR target/23485
8236         * config/ia64/ia64.md (divsi3): Check divide by zero.
8237         (udivsi3): Likewise.
8238         (divdi3): Likewise.
8239         (udivdi3): Likewise.
8240
8241 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
8242
8243         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
8244         up to elem_bitsize bits, not max_bitsize.
8245
8246 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
8247
8248         PR tree-optimization/23433
8249         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
8250         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
8251
8252 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
8253
8254         PR tree-optimization/23434
8255         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
8256         the iteration bound is not an INTEGER_CST.
8257
8258 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
8259
8260         * tree-vect-transform.c (get_initial_def_for_reduction): Set
8261         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
8262         NULL if need_epilog_adjust is false.
8263         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
8264         Case 3 always peels first itration, not just for PLUS case, and no need
8265         to use scalar_initial_def here. Create an epilog adjustment only if
8266         scalar_initial_def is not NULL.
8267
8268         (vectorizable_reduction): Remove assert.
8269
8270 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
8271
8272         PR target/23485
8273         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
8274         (__moddi3): Likewise.
8275         (__udivdi3): Likewise.
8276         (__umoddi3): Likewise.
8277         (__divsi3): Likewise.
8278         (__modsi3): Likewise.
8279         (__udivsi3): Likewise.
8280         (__umodsi3): Likewise.
8281
8282 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
8283
8284         * tree-pass.h (TDF_GRAPH): Define.
8285         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
8286         * passes.c (finish_optimization_passes): Only call
8287         finish_graph_dump_file if TDF_GRAPH is set.
8288         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
8289         NULL.  Set TDF_GRAPH bit.
8290         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
8291
8292 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
8293
8294         * arm.h (arm_stack_offsets): Add locals_base field.
8295         * arm.c (arm_get_frame_offsets): Compute it.
8296         (thumb_compute_initial_elimination offset): Make the Thumb frame
8297         pointer point to the base of the local variables.
8298         (thumb_expand_prologue): Update accordingly.
8299         (thumb_expand_epilogue): Likewise.
8300
8301         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
8302         mode of clobbered scratch to DImode.  Handle a case that's known to
8303         need this.
8304
8305 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
8306
8307         * config/rs6000/rs6000.md (gt0<mode>): Delete.
8308         (gt0<mode>_compare): Delete.
8309         (neg_gt0<mode>): Delete.
8310
8311 2005-08-19  Eric Christopher  <echristo@apple.com>
8312
8313         * optabs.h: Change CTI_ to COI_.
8314         * optabs.c: Ditto.
8315
8316 2005-08-19  James E Wilson  <wilson@specifix.com>
8317
8318         * builtins.c (expand_builtin_return_addr): Set
8319         current_function_accesses_prior_frames when count != 0.  Use
8320         frame_pointer_rtx when count == 0.
8321         * function.h (struct function): Add accesses_prior_frames field.
8322         (current_function_accesses_prior_frames): Define.
8323         * reload1.c (init_elim_table): Check
8324         current_function_accesses_prior_frames.
8325         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
8326
8327 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8328
8329         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
8330         indicator.  Return true if the flowgraph changed during
8331         cleanup.
8332
8333 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8334
8335         PR 23476
8336         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
8337         conditional expression before testing its value.
8338
8339 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8340
8341         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
8342
8343 2005-08-19  Devang Patel  <dpatel@apple.com>
8344
8345         PR tree-optimization/23048
8346         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
8347         third parameter. Check whether latch is dominated by exit
8348         block or not.
8349         (if_convertible_loop_p): Supply exit block itself to
8350         if_convertible_bb_p.
8351
8352 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8353
8354         PR target/23473
8355         * arm.md (arm_load_pic_register): Change argument to the mask of
8356         saved registers.  Call thumb_find_work_register if we need a
8357         scratch register on Thumb.
8358         (arm_expand_prologue): Pass empty register set to
8359         arm_load_pic_register.
8360         (thumb_expand_prologue): Pass live_regs_mask directly to
8361         arm_load_pic_register.
8362         * arm-protos.h (arm_load_pic_register): Update prototype.
8363
8364 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
8365
8366         * sh.c (find_sole_member): New function.
8367         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
8368         if the record's alignment is larger than the size of its only member.
8369
8370 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8371
8372         PR target/23436
8373         * arm.c (thumb_legitimize_reload_address): New function.
8374         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
8375         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
8376
8377 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
8378
8379         * config/crx/crx.c: Implement crx_decompose_address. Reject
8380         symbolic displacements since CRX register relative adressing
8381         mode can't handle unsigned 32-bit values as displacements.
8382         * config/crx/crx.h: Simplify definitions, remove redundant
8383         parenthesis and obsolete macros.
8384         * config/crx/crx.opt: Add new switch for debugging addresses.
8385         * config/crx/crx-protos.h: Add new declarations for above.
8386
8387 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
8388
8389         PR middle-end/20624
8390         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
8391         looking past it.
8392
8393 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8394
8395         * collect2.c (dup2): Delete.
8396         * configure.ac: Don't check for dup2.
8397
8398         * config.in, configure: Regenerate.
8399
8400 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
8401
8402         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
8403         record with the type of its only member.
8404
8405 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
8406
8407         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
8408         define_insn_and_split.
8409         (plus_ltu<mode>_compare): Same.
8410         (gtu<mode>_compare): Same.
8411         (plus_gtu<mode>_compare): Same.
8412
8413 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
8414
8415         PR tree-optimization/22228
8416         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
8417         todo_flags_start.
8418         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
8419         are recorded in vect_vnames_to_rename for renaming.
8420         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
8421         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
8422         in vect_vnames_to_rename.
8423         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
8424         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
8425
8426 2005-08-18  Jan Hubicka  <jh@suse.cz>
8427
8428         PR c++/22034
8429         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
8430         info only for local statics, not for member variables.
8431
8432 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8433
8434         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
8435
8436 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8437
8438         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
8439
8440 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
8441
8442         PR middle-end/16045
8443         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
8444
8445 2005-08-17  James E Wilson  <wilson@specifix.com>
8446
8447         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8448         array size check.
8449
8450 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
8451
8452         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
8453         (leu<mode>_compare): Same.
8454         (plus_leu<mode>): Same.
8455         (neg_leu<mode>): Same.
8456         (and_neg_leu<mode): Same.
8457         (ltu<mode>_compare): Same.
8458         (plus_ltu<mode>): Same.
8459         (geu<mode>): Same.
8460         (geu<mode>_compare): Same.
8461         (plus_geu<mode>): Same.
8462         (neg_geu<mode>): Same.
8463         (and_neg_geu<mode>): Same.
8464         (plus_gt<mode>): Same.
8465         (gtu<mode>_compare): Same.
8466         (plus_gtu<mode>): Same.
8467
8468 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
8469
8470         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
8471         Move call_table_data to end.  Delete spurious .text.
8472         (callt_save_all_interrupt): Fix comment typo.
8473
8474 2005-08-17  James E Wilson  <wilson@specifix.com>
8475             Kevin Winchester  <winchester@amirix.com>
8476
8477         PR target/21684
8478         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
8479
8480 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
8481
8482         PR target/23268
8483         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
8484         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
8485
8486 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
8487
8488         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
8489         record with the type of its only member if the modes don't match.
8490
8491         * varasm.c (decode_reg_name): Skip empty additional register names.
8492
8493 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
8494
8495         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
8496         lsm_tmp_name_length): New.
8497         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
8498         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
8499
8500 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8501             Andreas Krebbel  <krebbel1@de.ibm.com>
8502
8503         * config.gcc: Added z9-109 switch.
8504         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
8505         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
8506         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
8507         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
8508         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
8509         for "z9_109" cpu attribute.
8510         * config/s390/s390.c (z9_109_cost): New processor cost structure.
8511         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
8512         (s390_handle_arch_option): Added z9-109 switch.
8513         (override_options): Set respective cost function for z9-109.
8514         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
8515         (legitimate_reload_constant_p): Accept extended immediates.
8516         (print_operand): Three new output modifiers added: k, m and o.
8517         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
8518         (s390_output_mi_thunk): Use extended immediate when possible.
8519         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
8520         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
8521         (CONSTRAINT_LEN): Added length of O constraint.
8522         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
8523         * config/s390/s390.md ("cpu"): New value z9_109 added.
8524         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
8525         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
8526         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
8527         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
8528         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
8529         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
8530         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
8531         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
8532         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
8533         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
8534         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
8535         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
8536         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
8537         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
8538         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
8539         immediates.
8540         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
8541         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
8542         insns for TARGET_EXTIMM.
8543
8544 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8545
8546         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
8547
8548 2005-08-17  Nick Clifton  <nickc@redhat.com>
8549
8550         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
8551         Call default_encode_section_info.
8552
8553 2005-08-17  Steven Bosscher  <stevenb@suse.de>
8554
8555         PR tree-optimization/21574
8556         * tree-ssa-ccp.c (likely_value): If the right hand side is a
8557         constant, return CONSTANT.
8558         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
8559         (ccp_fold, visit_assignment): Likewise.
8560         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
8561
8562 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8563
8564         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
8565         fold_buildN instead of buildN then fold_initializer or fold.
8566         (build_unary_op): Likewise.
8567         (build_binary_op): Likewise.
8568         * fold-const.c (fold_initializer): Remove.
8569         (fold_build1_initializer): New function.
8570         (fold_build2_initializer): New function.
8571         (fold_build3_initializer): New function.
8572         * tree.h (fold_initializer): Remove.
8573         (fold_build1_initializer): New function.
8574         (fold_build2_initializer): New function.
8575         (fold_build3_initializer): New function.
8576
8577 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8578
8579         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
8580         (try_move_mult_to_index): Call fold_build2 instead of build2.
8581         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
8582         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
8583         fold_binary_to_constant.
8584         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
8585         fold (build.
8586         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
8587         check if A == gcd (A, B).  Remove TYPE argument.
8588         (analyze_offset) Use fold_build2 instead of fold (build.
8589         (create_data_ref): Likewise.
8590         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
8591         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
8592         then fold.
8593
8594 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
8595
8596         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
8597         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
8598
8599 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
8600
8601         PR tree-opt/23402
8602         * gimplify.c (zero_sized_type): New function.
8603         (gimplify_modify_expr_rhs): If we have a zero sized type,
8604         replace the statement with an empty statement.
8605
8606 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
8607
8608         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
8609         fxsave.
8610
8611 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8612
8613         * doc/tm.texi (Label Output): Correct typo.
8614
8615 2005-08-16  Steven Bosscher  <stevenb@suse.de>
8616
8617         PR target/23376
8618         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
8619         force_operand will work later on using have_insn_for.
8620
8621 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8622
8623         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
8624
8625 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8626
8627         PR c++/23337
8628         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
8629         vector type, don't try to construct it element by element.  Add an
8630         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
8631
8632 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8633
8634         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
8635
8636 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
8637
8638         * doc/invoke.texi (Precompiled Headers): Document some more options
8639         which are known to be safe.
8640
8641 2005-08-16  James E Wilson  <wilson@specifix.com>
8642
8643         PR tree-optimization/21105
8644         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8645         TREE_OVERFLOW check.
8646
8647 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
8648
8649         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
8650         (neg_ltu<mode>): Same.
8651         (gtu<mode>): Same.
8652         (neg_gtu<mode>): Same.
8653
8654 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8655
8656         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
8657         (fold_builtin_isdigit): Use fold_buildN.
8658         (build_function_call_expr): Likewise.
8659         * c-typeck.c (c_finish_loop): Likewise.
8660
8661 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
8662             Richard Shann <rshann@superh.com>
8663
8664         PR middle-end/20396:
8665         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
8666
8667 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
8668
8669         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
8670
8671 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
8672
8673         PR target/23355
8674         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
8675         arm_compure_save_reg0_reg12_mask to determine when the PIC register
8676         must be saved.
8677
8678 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8679
8680         PR middle-end/23369
8681         * fold-const.c (build_range_check): Disable optimization for function
8682         pointer expressions on targets that require function pointer
8683         canonicalization.
8684
8685 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
8686
8687         * simplify-rtx.c (simplify_const_relational_operation): When
8688         extracting arguments of a COMPARE, recompute the mode as well.
8689
8690 2005-08-15  Ian Lance Taylor  <ian@airs.com>
8691
8692         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
8693
8694 2005-08-15  DJ Delorie  <dj@redhat.com>
8695
8696         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
8697         the stack.
8698         (movsi_splittable): Allow, but split, moves to the stack.
8699         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
8700         stack.
8701
8702 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8703
8704         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
8705         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
8706         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
8707
8708         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
8709         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
8710         Delete HOST_PTR_PRINTF.
8711
8712         * configure, config.in: Regenerate.
8713
8714 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
8715
8716         * config/rs6000/rs6000.md (QHSI): New mode macro.
8717         (wd): Extend mode attr for QImode and HImode
8718         (dbits): New mode attr.
8719         (zero_extend<mode>di2): Convert to mode macro.
8720
8721 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
8722
8723         PR target/21841
8724         * doc/invoke.texi (-mgnu-ld): Update description.
8725         (-mhp-ld): Ditto.
8726
8727 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8728
8729         PR 23391
8730         * Makefile.in (tree-chrec.o): Depends on real.h.
8731         * tree-chrec.c: Include real.h.
8732         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
8733         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
8734         * tree-scalar-evolution.c (add_to_evolution_1,
8735         interpret_rhs_modify_expr): Ditto.
8736
8737 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8738
8739         PR 23386
8740         * tree-data-ref.c (estimate_niter_from_size_of_data): When
8741         step is negative compute the estimation from init downwards to zero.
8742
8743 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
8744
8745         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
8746
8747 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8748
8749         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
8750         constraint.
8751         (legitimate_reload_constant_p): Fix handling of lliXX operands.
8752         Accept double-word constants that can be split.
8753         * config/s390/s390.md ("movti"): Use 'P' constraint.
8754         ("*movdi_31", "*movdf_31"): Likewise.
8755
8756 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
8757
8758         Fix PR tree-optimization/22615
8759
8760         * tree-ssa-structalias.c (solution_set_add): Handle
8761         first_vi_for_offset returning NULL.
8762         (do_da_constraint): Ditto.
8763         (do_sd_constraint): Ditto.
8764         (do_ds_constraint): Ditto
8765         (find_func_aliases): Ditto.
8766         (build_constraint_graph): RHS is allowed be ANYTHING.
8767         (first_vi_for_offset): Return NULL if we couldn't find anything at
8768         the offset.
8769
8770 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8771
8772         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
8773         over memory as first operand.
8774
8775 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
8776
8777         PR target/23360
8778         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
8779         available for setting it.
8780
8781 2005-08-14  Ira Rosen  <irar@il.ibm.com>
8782
8783         PR tree-optimization/23320
8784         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
8785         data-refs' types instead of base object nullness. Add check for
8786         pointer type data-refs before first location comparison. Remove
8787         assert.
8788
8789 2005-08-14  Andreas Schwab  <schwab@suse.de>
8790
8791         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
8792
8793 2005-08-13  James E Wilson  <wilson@specifix.com>
8794
8795         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
8796         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
8797         -fstack-protector-all, --param ssp-buffer-size): Document.
8798         (-Wvariadic-macros): Alphabetize.
8799         (-fsched-stalled-insns-dep): Add missing 'f'.
8800
8801         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
8802         macros.
8803
8804 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
8805
8806         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
8807         or indirect address operand.
8808         (EXTRA_ADDRESS_CONSTRAINT): New.
8809         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
8810
8811 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
8812
8813         PR tree-optimization/22236
8814         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
8815         successors and predecessors.
8816         * tree-chrec.c (chrec_convert): Before converting, check that
8817         sequences don't wrap.
8818         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
8819         (analyze_array): Extern.
8820         (find_data_references_in_loop): Remove call to
8821         compute_estimated_nb_iterations.
8822         * tree-data-ref.h (analyze_array): Declared.
8823         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
8824         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
8825         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
8826         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
8827         condition.
8828         * tree-ssa-loop-ivcanon.c: Fix documentation.
8829         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
8830         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
8831         (infer_loop_bounds_from_undefined): New.
8832         (estimate_numbers_of_iterations_loop): Use
8833         infer_loop_bounds_from_undefined.
8834         (used_in_pointer_arithmetic_p): New.
8835         (scev_probably_wraps_p): Pass an extra parameter.  Call
8836         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
8837         (convert_step): Fix documentation.
8838         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
8839         Use initial_condition_in_loop_num and evolution_part_in_loop_num
8840         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
8841         scev_probably_wraps_p.
8842
8843 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
8844
8845         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
8846         (s390_register_info): Ignore clobbered_regs information for fixed
8847         registers, and only fixed registers.
8848         (s390_init_frame_layout): Remove redundant call.
8849
8850 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
8851
8852         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
8853         description of -Wold-style-casts.
8854
8855 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8856             Jakub Jelinek  <jakub@redhat.com>
8857
8858         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8859         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
8860         * config/s390/s390.c (print_operand): New output modifier 'G' added.
8861         (get_thread_pointer): Renamed to s390_get_thread_pointer.
8862         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
8863         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
8864         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
8865         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
8866         ("stack_protect_set", "stack_protect_test"): New expanders.
8867         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
8868         "stack_protect_testdi"): New insn definitions.
8869
8870 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8871
8872         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
8873
8874 2005-08-12  Paul Brook  <paul@codesourcery.com>
8875
8876         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
8877
8878 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8879
8880         * config/s390/predicates.md (setmem_operand): New predicate.
8881         (shift_count_operand): Accept ANDs with special constants as
8882         operand.
8883         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
8884         with special constants.
8885         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
8886         shift_count_operand with setmem_operand.
8887
8888 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8889
8890         * config/s390/s390.c (s390_extract_part, s390_single_part):
8891         Type cast added.
8892         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
8893         (s390_output_mi_thunk): Don't use lg on 31 bit.
8894         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
8895         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
8896
8897 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8898
8899         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
8900         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
8901         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
8902         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
8903         with one of the new macros.
8904
8905 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8906
8907         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
8908         Don't set save_return_addr_p.
8909         (s390_register_info): Make clobbered_regs not depending on
8910         save_return_addr_p.
8911
8912 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8913
8914         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
8915         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
8916
8917 2005-08-11  James E. Wilson  <wilson@specifix.com>
8918
8919         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
8920
8921 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
8922
8923         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
8924         locations gathered by var-tracking in single entry loc_list
8925         over loc_descriptor_from_tree.
8926
8927         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
8928         pass it down to loc_descriptor.
8929         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
8930         (containing_function_has_frame_base): Move earlier in the file.
8931         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
8932         instead of always assuming fbreg can't be used.
8933
8934 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
8935
8936         * config/rs6000/altivec.md: Change constraint "m" to "Z".
8937         * config/rs6000/predicates.md (indexed_or_indirect_operand):
8938         Accept address wrapped in AND for Altivec.
8939         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
8940         Strip AND wrapping offset address for Altivec.
8941
8942 2005-08-11  Richard Henderson  <rth@redhat.com>
8943
8944         PR middle-end/23312
8945         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
8946         before using TYPE_IS_SIZETYPE.
8947
8948 2005-08-11  Richard Henderson  <rth@redhat.com>
8949
8950         PR target/22225
8951         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
8952         insn types not present on ev4.
8953         (alphaev5_insn_pipe): Similarly.
8954
8955 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
8956
8957         PR target/23250
8958         * arm.c (arm_override_options): If the user has selected callee-super-
8959         interworking, then enable normal interworking.
8960
8961 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8962
8963         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
8964         redefinition.
8965
8966 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
8967
8968         * doc/rtl.texi: Fix two typos.
8969
8970 2005-08-11  Richard Guenther  <rguenther@suse.de>
8971
8972         PR target/23289
8973         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
8974         cases where we call to/from functions returning void.
8975
8976 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
8977
8978         PR c++/23225
8979         * tree.c (build_pointer_type_for_mode): Robustify.
8980
8981 2005-08-10  James E Wilson  <wilson@specifix.com>
8982
8983         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
8984         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
8985
8986         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
8987         "cum->".
8988
8989 2005-08-10  Eric Christopher  <echristo@apple.com>
8990
8991         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
8992         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
8993         V2DFmode.
8994
8995 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
8996
8997         PR target/21887
8998         * config/darwin.c (machopic_indirect_data_reference): Use a new register
8999         for the high part when generating dynamic-no-pic code.
9000
9001 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
9002
9003         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
9004         (x86_64-*-linux*): Likewise.
9005
9006         * config/i386/crtfastmath.c: New file.
9007         * config/i386/t-crtfm: Likewise.
9008
9009         * config/i386/linux.h (ENDFILE_SPEC): New.
9010         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
9011
9012         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
9013         crtfastmath.o.
9014
9015 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
9016
9017         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
9018         (vec_shl, vec_shr): Document new operations.
9019         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
9020
9021 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
9022
9023         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
9024         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
9025         change predicate to indexed_or_indirect_address.
9026
9027 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
9028
9029         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
9030         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
9031         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
9032         and __aeabi_uwrite8.
9033         * config/arm/unaligned-funcs.c: New file.
9034         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
9035
9036 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
9037
9038         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
9039         Add dump.
9040         * cfglayout.c (pass_insn_locators_initialize): Add dump.
9041         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
9042         Add dump.
9043         * except.c (pass_convert_to_eh_region_ranges): Add dump.
9044         * final.c (pass_shorten_branches): Add dump.
9045         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
9046         (pass_life): Rename dump.
9047         (rest_of_handle_flow2): Remove initial verify_flow_info.
9048         * function.c (pass_instantiate_virtual_regs): Add dump.
9049         * integrate.c (pass_initial_value_sets): Add dump.
9050         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
9051         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
9052         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
9053         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
9054         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
9055         gate_rtl_unrool_and_peel_loops): New.
9056         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
9057         rtl_doloop): Do not look at flags.
9058         * mode-switching.c (pass_mode_switching): Add dump.
9059         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
9060         pass_split_before_regstack): Add dump.
9061         * regmove.c (pass_stack_adjustments): Add dump.
9062         * tree-optimize.c (pass_fixup_cfg): Add dump.
9063
9064 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
9065
9066         PR 23309
9067         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
9068         deciding which instruction sequence to use.
9069
9070 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
9071
9072         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
9073         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
9074
9075 2005-08-09  Richard Guenther  <rguenther@suse.de>
9076
9077         * c-common.c (builtin_function_2): Remove.
9078         (def_builtin_1): New function.
9079         (c_common_nodes_and_builtins): Use def_builtin_1 to
9080         build builtin functions.
9081
9082 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
9083
9084         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
9085         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
9086         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
9087         Visual DSP.
9088
9089 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
9090
9091         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
9092         fold_binary instead of fold_build2 since we don't care about the
9093         resulting tree.
9094         (loop_niter_by_eval): Likewise.
9095         (compare_trees): Likewise.
9096         (proved_non_wrapping_p): Likewise.
9097
9098 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
9099
9100         PR c/23161
9101         PR c/23165
9102         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
9103         if the if is really empty.
9104
9105 2005-08-09  Steven Bosscher  <stevenb@suse.de>
9106
9107         PR tree-optimization/23234
9108         * tree-ssa-math-opts.c (place_reciprocal): New enum.
9109         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
9110         argument of the new enum.
9111         (execute_cse_reciprocals): Add reciprocals for function arguments
9112         on the unique successor edge of the entry block.  Update other calls
9113         to execute_cse_reciprocals_1.
9114
9115 2005-08-08  Richard Henderson  <rth@redhat.com>
9116
9117         PR 22439
9118         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
9119
9120 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
9121
9122         * expr.c (write_complex_part): Return after handling MEM.
9123
9124 2005-08-08  Josh Conner  <jconner@apple.com>
9125
9126         PR rtl-optimization/23241
9127         * combine.c (simplify_comparison): Fix error in determining
9128         whether to lift a subreg from comparison.
9129
9130 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
9131
9132         PR target/18506
9133         * config/rs6000/altivec.md (vec_init<mode>): New.
9134         (vec_set<mode>): New.
9135         (vec_extract<mode>): New.
9136         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
9137         (rs6000_expand_vector_set): New.
9138         (rs6000_expand_vector_extract): New.
9139         (rs6000_legitimate_offset_address_p): Offset addresses are valid
9140         for Altivec modes before reload.
9141         (altivec_expand_vec_init_builtin): New.
9142         (get_element_number): New.
9143         (altivec_expand_vec_set_builtin): New.
9144         (altivec_expand_vec_ext_builtin): New.
9145         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
9146         builtins.
9147         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
9148         builtins.
9149         * config/rs6000/rs6000.h (rs6000_builtins): Add
9150         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
9151         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
9152         * config/rs6000/rs6000-protos.h: Declare new functions.
9153
9154 2005-08-08  Jan Hubicka  <jh@suse.cz>
9155
9156         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
9157         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
9158         * i386.md (movdi*): Use pic_32bit_operand.
9159         * predicates.md (pic_32bit_operand): New.
9160
9161 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
9162
9163         PR c++/21166
9164         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
9165
9166 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
9167
9168         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
9169         (test_for_singularity): Use fold_build2.
9170
9171 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9172
9173         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
9174
9175 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
9176
9177         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
9178         (COMMON_ASM_OP) Define.
9179         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
9180         (ix86_encode_section_info): Likewise.
9181         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
9182         SUBTARGET_ENCODE_SECTION_INFO.
9183
9184 2005-08-06  Richard Henderson  <rth@redhat.com>
9185
9186         PR 21894
9187         * tree-nested.c (convert_local_reference): Save and restore val_only
9188         around component_ref and friends.  Clear walk_subtrees by default.
9189
9190 2005-08-06  Peter O'Gorman  <peter@pogma.com>
9191
9192         PR 21366
9193         * gcc.c (process_command): Check the argument to -b has a dash.
9194         * doc/invoke.texi: Update -b and -V docs.
9195
9196 2005-08-06  James E Wilson  <wilson@specifix.com>
9197
9198         * config/mips/cross64.h, config/mips/t-cross64: Delete.
9199
9200 2005-08-06  Michael Matz  <matz@suse.de>
9201
9202         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
9203         member only if only one insn is associated with the value.
9204
9205 2005-08-06  Nick Clifton  <nickc@redhat.com>
9206
9207         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
9208         New define.
9209         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
9210         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
9211         Check symbol flags instead of symbol name mangling.
9212         (xstormy16_asm_output_aligned_common): Likewise.  Also
9213         simplify code since the bss100_section cass is the only case
9214         where the below100 code will be triggered.
9215         (xstormy16_encode_section_info): Encode below100 attribute
9216         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
9217         the name.
9218         (xstormy16_strip_name_encoding): Delete - this function is no
9219         longer needed.
9220         (TARGET_STRIP_NAME_ENCODING): Undefine.
9221         * config/stormy16/stormy16-protos.h: Delete prototype for
9222         xstormy16_strip_name_encoding.
9223
9224 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
9225
9226         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
9227         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
9228         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
9229         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
9230         config/alpha/predicates.md, config/arc/arc.h,
9231         config/arm/arm.h, config/arm/ieee754-df.S,
9232         config/arm/ieee754-sf.S, config/bfin/bfin.c,
9233         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
9234         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
9235         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
9236         config/m68hc11/m68hc11.h, config/mips/mips.c,
9237         config/mips/mips.h, config/mips/openbsd.h,
9238         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
9239         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
9240         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
9241         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
9242         config/sparc/linux.h, config/sparc/linux64.h,
9243         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
9244         doc/extend.texi, doc/gcov.texi, doc/install.texi,
9245         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
9246         typos.  Follow spelling conventions.
9247
9248 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
9249
9250         PR c/23113
9251         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
9252         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
9253         specially.  Check for side effects only for COND_EXPR.
9254         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
9255         return with TREE_NO_WARNING.
9256
9257 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
9258
9259         PR rtl-optimization/23233
9260         * loop.c (combine_movables): Require the modes to be the same.
9261         (move_movables): Remove handling of cases where the replacement
9262         had a different mode to the original.
9263
9264 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
9265
9266         PR tree-optimization/23128
9267         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
9268         subtraction wrap, and set TREE_OVERFLOW if they do.
9269
9270 2005-08-05  Richard Henderson  <rth@redhat.com>
9271
9272         PR 21728
9273         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
9274         FORCED_LABEL labels.
9275
9276 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
9277
9278         PR middle-end/23135
9279         * reload.c (find_reloads_subreg_address): Pass down TYPE
9280         unchanged.  Change all callers except find_reloads_toplev.
9281
9282 2005-08-05  Michael Matz  <matz@suse.de>
9283
9284         * genattrtab.c (current_alternative_string): Remove.
9285         (SIMPLIFY_ALTERNATIVE): Ditto.
9286         (attr_alt_bit_p): Ditto.
9287         (alternative_name): Make const char *.
9288         (evaluate_eq_attr): Remove use of above things.
9289         (simplify_test_exp): Ditto.
9290         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
9291         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
9292
9293 2005-08-04  James E Wilson  <wilson@specifix.com>
9294
9295         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
9296         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
9297         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
9298         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
9299         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
9300
9301 2005-08-04  Richard Henderson  <rth@redhat.com>
9302
9303         PR 21529
9304         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
9305         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
9306         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
9307         if we'd have to instantiate too many members.
9308
9309 2005-08-04  Richard Henderson  <rth@redhat.com>
9310
9311         PR 21291
9312         * tree-outof-ssa.c (coalesce_asm_operands): New.
9313         (coalesce_ssa_name): Use it.  Split out ...
9314         (coalesce_phi_operands, coalesce_result_decls): ... these.
9315
9316 2005-08-04  Paul Brook  <paul@codesourcery.com>
9317
9318         * read-rtl.c (read_quoted_string): Break if EOF.
9319
9320 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
9321
9322         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
9323         (fold_build2): Likewise.
9324         (fold_build3): Likewise.
9325         (fold_build1_stat): New function prototype.
9326         (fold_build2_stat): Likewise.
9327         (fold_build3_stat): Likewise.
9328         * fold-const.c (fold_build1): Rename to ..
9329         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9330         through to build1_stat.
9331         (fold_build2): Rename to ..
9332         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9333         through to build2_stat.
9334         (fold_build3): Rename to ..
9335         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9336         through to build3_stat.
9337
9338 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
9339             Ian Lance Taylor  <ian@airs.com>
9340
9341         * function.c (assign_stack_local_1): Do not correct stack slot
9342         address if allocation size is smaller than mode size.
9343
9344 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
9345
9346         PR 22037
9347         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
9348         (tree_merge_blocks): Propagate anything allowed by
9349         may_propagate_copy.
9350         Clarify documentation.
9351         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
9352         SSA form, schedule an update if necessary.
9353
9354 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
9355
9356         * doc/install.texi (Binaries): Remove broken link to
9357         Sinix/Reliant Unix binaries.
9358
9359 2005-08-03  Richard Henderson  <rth@redhat.com>
9360
9361         PR 23221
9362         * function.c (stack_protect_epilogue): Export.
9363         * tree.h (stack_protect_epilogue): Declare.
9364         * calls.c (expand_call): Call it.
9365
9366 2005-08-03  Eric Christopher  <echristo@apple.com>
9367
9368         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
9369         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
9370         spec.
9371
9372 2005-08-04  Jan Hubicka  <jh@suse.cz>
9373
9374         * profile.c (branch_prob): Split edges with goto locus on them
9375         to get proper line counts.
9376         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
9377
9378 2005-08-03  Paul Brook  <paul@codesourcery.com>
9379
9380         * function.c (assign_parms): Round current_function_args_size
9381         to PARM_BOUNDARY, not STACK_BOUNDARY.
9382
9383 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
9384
9385         * config/i386/i386.c (x86_elf_aligned_common)
9386         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
9387
9388 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
9389
9390         PR tree-optimization/23157
9391         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
9392         before emitting them.
9393
9394 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9395
9396         PR tree-optimization/19899
9397         * Makefile.in (tree-scalar-evolution.o): Add real.h.
9398         * tree-scalar-evolution.c: Include real.h.
9399         (add_to_evolution): Build constant -1 of correct type.
9400
9401 2005-08-03  Jan Hubicka  <jh@suse.cz>
9402
9403         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
9404         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
9405         profile updating for complette unrolling.
9406         * loop-unroll.c (peel_loop_completely): Use it.
9407         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
9408         (tree_unroll_loops_completely): Disable code growing unrolling of cold
9409         loops.
9410
9411 2005-08-03  Paul Brook  <paul@codesourcery.com>
9412
9413         * combine.c (can_change_dest_mode): New function.
9414         (try_combine, simplify_set): Use it.
9415
9416 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
9417
9418         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
9419         TFmode to BLKmode.
9420
9421 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
9422
9423         * doc/install.texi (Specific): Adjust link to openavr.org.
9424         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
9425         (Binaries): Adjust HP-UX Porting Center link.
9426         (Binaries): Adjust Free Software Foundation ordering link.
9427
9428 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
9429
9430         * convert.c (convert_to_integer): Use fold_build1 instead of
9431         build1 when converting an integer to an integer.
9432
9433 2005-08-02  Richard Henderson  <rth@redhat.com>
9434
9435         * combine.c (combine_instructions): Don't use reg_equal/equiv
9436         results if the mode doesn't match.
9437
9438 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
9439
9440         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
9441         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
9442
9443 2005-08-02  Richard Henderson  <rth@redhat.com>
9444
9445         PR 23196
9446         * explow.c (memory_address): Remove special-case for
9447         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
9448
9449 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
9450
9451         PR 23164
9452         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
9453         number of calls to cleanup_tree_cfg_1.
9454
9455 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
9456
9457         * doc/invoke.texi: document file extensions .F90 and .F95
9458
9459 2005-08-02  Richard Guenther  <rguenther@suse.de>
9460
9461         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
9462         positive if its first argument is positive.
9463
9464 2005-08-02  Richard Guenther  <rguenther@suse.de>
9465
9466         PR tree-optimization/23177
9467         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
9468         on TMR_TAG.
9469
9470 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
9471
9472         PR tree-optimization/23129
9473         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
9474         varying for divisions with anti-ranges.
9475
9476 2005-08-02  Jan Hubicka  <jh@suse.cz>
9477
9478         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
9479         * tree-ssa-threadupdate.c (thread_block): Add it here.
9480
9481 2005-08-01  James E Wilson  <wilson@specifix.com>
9482
9483         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
9484         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
9485         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
9486         New.
9487         * config/mips/predicates.md (const_call_insn_operand): Add check for
9488         SYMBOL_REF_LONG_CALL_P.
9489         * doc/extend.texi (long_call): Document the new attribute.
9490
9491 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9492             Richard Henderson  <rth@redhat.com>
9493
9494         * Makefile.in (RTL_BASE_H): Add real.h.
9495         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
9496         instead of memcpy.
9497         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
9498         directly.
9499         * rtl.c (rtl_check_failed_code_mode): New.
9500         * rtl.h (struct rtx_def): Add u.rv.
9501         (XCMWINT, XCNMPRV): New.
9502         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
9503         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
9504
9505 2005-08-01  Richard Henderson  <rth@redhat.com>
9506
9507         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
9508         with auto-inc codes.
9509
9510         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
9511
9512 2005-08-01  Jan Hubicka  <jh@suse.cz>
9513
9514         * i386-protos.h (asm_preferred_eh_data_format): Declare.
9515         * i386.c: Include dwarf2.h
9516         (asm_preferred_eh_data_format): New.
9517         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
9518
9519 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9520
9521         * config/host-linux.c (linux_gt_pch_get_address): Add new name
9522         randomize_va_space for virtual address randomization control.
9523
9524 2005-08-01  Steven Bosscher  <stevenb@suse.de>
9525
9526         * common.opt (flag_ipa_cp): Put in right place to maintain
9527         alphabetic sort.
9528
9529 2005-08-01  Jan Hubicka  <jh@suse.cz>
9530
9531         * profile.c (compute_value_histograms): Fix thinko.
9532         * value-prof.c: Include toplev.h
9533         (check_counter): New function.
9534         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9535         tree_mod_subtract_transform): Add sanity check.
9536
9537 2005-08-01  Richard Guenther  <rguenther@suse.de>
9538
9539         PR tree-optimization/23133
9540         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
9541         current functions parameter decls to find defs to cse
9542         reciprocals of.
9543
9544 2005-08-01  Richard Guenther  <rguenther@suse.de>
9545
9546         PR tree-optimization/23109
9547         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
9548         If trapping math is in effect, use post-dominator information
9549         to check if we'd in any case reach a trapping point before
9550         doing the reciprocal insertion.
9551         (execute_cse_reciprocals): Compute post-dominators, if necessary.
9552         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
9553         expressions are invariant only if trapping math is not in effect.
9554
9555 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9556
9557         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
9558         cgraph_function_versioning): New declarations.
9559         * cgraphunit.c: Add include to ipa-prop.h.
9560         (update_call_expr, cgraph_copy_node_for_versioning,
9561         cgraph_function_versioning): New functions.
9562         * integrate.c (copy_decl_for_inlining): Remove.
9563         * ipa-prop.h (ipa_replace_map): New struct.
9564         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
9565         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
9566         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
9567         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
9568         ipcp_iterate_stage, ipcp_method_scale_print,
9569         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
9570         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
9571         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
9572         ipcp_update_bb_counts, ipcp_update_profiling,
9573         ipcp_update_edges_counts): New functions.
9574         (ipcp_method_cval_init): Remove restriction regarding local methods.
9575         (ipcp_init_stage): Add ipcp_method_compute_scale.
9576         (ipcp_insert_stage): Add versioning.
9577         (ipcp_structures_print): Add ipcp_method_scale_print.
9578         (ipcp_driver): Dump profiling info.
9579         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
9580         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
9581         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
9582         (struct inline_data): Add versioning_p, ipa_info, new fields.
9583         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
9584         declare_return_variable): Replace calls to copy_decl_for_inlining with
9585         copy_decl_for_dup.
9586         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
9587         versioning support.
9588         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
9589         Add argument VERSIONING.
9590         (copy_arguments_for_versioning, copy_static_chain,
9591         function_versionable_p, tree_versionable_function_p,
9592         tree_function_versioning, replace_ref_tree): New functions.
9593         * tree-inline.h: Include varray.h.
9594         (tree_versionable_function_p,  tree_function_versioning,
9595         tree copy_decl_for_dup): New declarations.
9596
9597 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9598
9599         * ipa-cp.c: New file. Contains IPCP specific functionality.
9600         * ipa-prop.h: New file. Contains structures/definitions that can be
9601         used by several interprocedural data flow optimizations (and also IPCP).
9602         * ipa-prop.c: New file.
9603         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
9604         * common.opt: Add ipa-cp flag.
9605         * timevar.def: Add IPCP optimization.
9606         * tree-optimize.c (init_tree_optimization_passes): Schedule
9607         pass_ipa_cp.
9608         * tree-pass.h (pass_ipa_cp): Declare.
9609
9610 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
9611
9612         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
9613         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
9614         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
9615         config/i386/i386.c, config/mips/mips.h,
9616         config/rs6000/rs6000.h, config/sh/sh.c,
9617         config/stormy16/stormy16.c: Fix comment typos.
9618
9619 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
9620
9621         PR c/22311
9622         * c-typeck.c (build_binary_op): Use common_type wrapper on
9623         shortened types.
9624         (common_type): Update comment.
9625
9626 2005-07-31  Steven Bosscher  <stevenb@suse.de>
9627
9628         PR target/23095
9629         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
9630         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
9631         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
9632
9633 2005-07-31  Jan Hubicka  <jh@suse.cz>
9634
9635         * pretty-print.h (pp_widest_integer): New macro.
9636         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
9637         counts.
9638
9639 2005-07-31  Jan Hubicka  <jh@suse.cz>
9640
9641         * output.h (enum section_category): Export from varasm.c
9642         (categorize_decl_for_section): Likewise.
9643         * varasm.c (enum section_category): Kill.
9644         (categorize_decl_for_section): Make global.
9645         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
9646         Declare.
9647         * i386.c (ix86_section_threshold): New static variable.
9648         (ix86_in_large_data_p, ix86_encode_section_info,
9649         x86_64_elf_unique_section,
9650         x86_64_elf_select_section): New functions.
9651         (TARGET_ENCODE_SECTION_INFO): Define
9652         (override_options): Enable medium model for PIC.
9653         (ix86_expand_prologue): Expand gen_set_got_rex64.
9654         (legitimate_constant_p): Handle new UNSPECs.
9655         (legitimate_pic_address_disp_p): Likewise.
9656         (legitimize_pic_address): Lower MEDIUM model addressing.
9657         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
9658         (enum cmodel): Add MEDIUM_PIC.
9659         (SYMBOL_REF_FAR_ADDR_P): New macro.
9660         (SYMBOL_FLAG_FAR_ADDR): New flag.
9661         * i386.md (movdi): Support medium model.
9662         (set_got_rex64): New pattern.
9663         * i386.opt (mlarge-data-threshold): New flag.
9664         * predicates.md (zext_operand/sext_operand): Deal with medium model.
9665         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
9666         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
9667         TARGET_ASM_UNIQUE_SECTION): New.
9668
9669         * invoke.texi (-mlarge_data_threshold): Document
9670
9671 2005-07-31  Jan Hubicka  <jh@suse.cz>
9672
9673         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
9674         (coalesce_vars): Likewise.
9675         * tree-ssa-live.c (coalesce_cost): New.
9676         (build_tree_conflict_graph): Use coalesce_cost.
9677         * tree-ssa-live.h (coalesce_cost): Declare.
9678
9679 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
9680
9681         * arm.md (all peepholes for post-increment operations): Delete.
9682         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
9683         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
9684         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
9685         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
9686         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
9687
9688 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
9689
9690         * fold-const.c (tree_expr_nonnegative_p): Always return true for
9691         non-integral types.
9692
9693 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
9694
9695         PR target/22582
9696         * doc/invoke.texi: Document -rdynamic.
9697
9698 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
9699
9700         PR c/23143
9701         * c-parser.c (c_parser_parms_list_declarator): Call
9702         mark_forward_parm_decls.
9703         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
9704         decls with visibility structure.
9705
9706 2005-07-30  Paul Brook  <paul@codesourcery.com>
9707
9708         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
9709
9710 2005-07-30  Paul Brook  <paul@codesourcery.com>
9711
9712         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9713         prototype.
9714         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
9715         value for mode.
9716         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
9717
9718 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9719
9720         PR c/529
9721         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
9722         nested function declarators.
9723         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
9724         (grokparms): Call warn_if_shadowing for parameters used within the
9725         parameter list.
9726         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
9727         not used within the parameter list.
9728         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
9729
9730 2005-07-30  Jan Hubicka  <jh@suse.cz>
9731
9732         * expr.c (expand_expr_real_1): Do not load mem targets into register.
9733         * i386.c (ix86_fixup_binary_operands): Likewise.
9734         (ix86_expand_unary_operator): Likewise.
9735         (ix86_expand_fp_absneg_operator): Likewise.
9736         * optabs.c (expand_vec_cond_expr): Validate dest.
9737
9738 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9739
9740         PR c/21720
9741         * real.c (real_from_string): Also set last bit if there is a
9742         nonzero hex digit beyond GCC's internal precision after ".".
9743
9744 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
9745
9746         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
9747         define_constants.  Change duplicate values to unassigned numbers.
9748         Change UNSPEC_SUBS to UNSPEC_VSUBS.
9749         (*altivec_vspltsf): New.
9750         (altivec_vperm_v4sf): Delete.
9751         (altivec_vperm_<mode>): Use mode macro V.
9752         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
9753         (altivec_predicate_v4sf): Delete.
9754         (altivec_predicate_<mode>): Use mode macro V.
9755         (*altivec_lvesfx): New.
9756         (*altivec_stvesfx): New.
9757         (vec_realign_load_v4sf): Delete.
9758         (vec_realign_load_<mode>): Use mode macro V.
9759         * config/rs6000/rs6000.c (generate_set_vrsave): Use
9760         UNSPECV_SET_VRSAVE.
9761
9762 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
9763
9764         PR bootstrap/23131
9765         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
9766         string.
9767         * configure: Regenerated.
9768
9769 2005-07-29  Paul Brook  <paul@codesourcery.com>
9770
9771         * doc/install.texi: Add link to GFortran binaries wiki page.
9772
9773 2005-07-29  David Ung  <davidu@mips.com>
9774
9775         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
9776         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
9777         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
9778         * config/mips/mips.md (cpu): Add 5kf name.
9779         (includes): Includes 5k.md.
9780         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
9781         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
9782         -march flag.
9783
9784 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9785
9786         PR 22550
9787         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
9788         (cleanup_tree_cfg): ... here.
9789         Call cleanup_tree_cfg_1 until there are no more cleanups to
9790         do.
9791
9792 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
9793
9794         * tree-vrp.c (compare_range_with_value): Return true or false
9795         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
9796         EQ_EXPR respectively.
9797
9798 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
9799
9800         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
9801         Fix comment typos.
9802
9803 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9804
9805         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
9806         (tree_ssa_dominator_optimize): Increment it.
9807         (dump_dominator_optimization_stats): Print it.
9808
9809 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
9810             Steven Bosscher  <stevenb@suse.de>
9811
9812         PR rtl-optimization/23117
9813         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
9814         when head == tail.  Tidy comment.
9815
9816 2005-07-28  Richard Henderson  <rth@redhat.com>
9817
9818         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
9819         * cselib.c (rtx_equal_for_cselib_p): Likewise.
9820         * jump.c (rtx_renumbered_equal_p): Likewise.
9821         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
9822         CONST_INT and CONST_DOUBLE.
9823         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
9824         * reload.c (operands_match_p): Special case CONST_INT and
9825         CONST_DOUBLE; check mode earlier.
9826
9827 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9828
9829         PR c/22240
9830         * c-typeck.c (convert_for_assignment): Do not check
9831         DECL_IN_SYSTEM_HEADER on NULL fundecl.
9832
9833 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9834
9835         PR c/22192
9836         * c-typeck.c (composite_type): Prefer constant size arrays to
9837         VLAs.
9838
9839 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9840
9841         PR c/21720
9842         * real.c (real_from_string): Set last bit if there is a nonzero
9843         hex digit beyond GCC's internal precision.
9844
9845 2005-07-28  Richard Henderson  <rth@redhat.com>
9846
9847         PR rtl-opt/22619
9848         * cfgcleanup.c (try_forward_edges): Watch out for end of
9849         insn chain.
9850
9851 2005-07-28  James E Wilson  <wilson@specifixinc.com>
9852
9853         PR c/23106
9854         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
9855
9856 2005-07-28  Jan Hubicka  <jh@suse.cz>
9857
9858         * Makefile.in (rtl-profile.o): Kill all traces of it.
9859         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
9860         * coverage.h (rtl_coverage_counter_ref): Kill.
9861         * opts.c (flag_speculative_prefetching_set): Kill.
9862         (flag_loop_optimize_set): New.
9863         (common_handle_option): Disable loop optimizer when profiling;
9864         do not handle speculative prefetching.
9865         * passes.c (init_optimization_passes): Replace pass_profiling combo
9866         by branch_prob pass.
9867         * profile.c (compute_value_histograms): Update for simplified value
9868         profiles.
9869         (rtl_register_profile_hooks): Kill.
9870         (pass_profiling): Kill.
9871         (rest_of_handle_branch_prob): Do not profile.
9872         * toplev.c (process_options): Remove speculative prefetching.
9873         * toplev.h (flag_tree_based_profiling): Kill.
9874         * tree-profile.c (prepare_instrumented_value,
9875         tree_gen_interval_profiler, tree_gen_pow2_profiler,
9876         tree_gen_one_value_profiler, do_tree_profiling): Update for
9877         simplified datastructures.
9878         * value-prof.c: Add comment that speculative prefetching was dropped;
9879         update rest of file for simplified datastructures.
9880         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
9881         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
9882         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
9883         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
9884         rtl_mod_subtract, gen_speculative_prefetch,
9885         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
9886         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
9887         (gate_handle_value_profile_transformations,
9888         rest_of_handle_value_profile_transformations,
9889         pass_value_profile_transformations): Kill.
9890         * value-prof.h (histogram_value_t): Remove IL based unions.
9891         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
9892         rtl_profile_hooks): Remove hooks.
9893
9894         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
9895
9896         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
9897         (cgraph_clone_node): Likewise.
9898         * cgraph.h (cgraph_clone_edge): Update prototype.
9899         (cgraph_clone_node): Likewise.
9900         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
9901         cgraph_clone_node.
9902         (lookup_recursive_calls): Consider profile.
9903         (cgraph_decide_recursive_inlining): Fix updating; use new
9904         probability argument; use profile.
9905         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
9906         * tree-inline.c (copy_bb): Update clal of clone_edge.
9907         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
9908
9909         * invoke.texi (min-inline-recursive-probability): Document.
9910
9911 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
9912
9913         * doc/install.texi (Configuration): Update Valgrind homepage.
9914
9915 2005-07-28  Richard Henderson  <rth@redhat.com>
9916
9917         PR middle-end/21362
9918         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
9919         labels we want to delete.
9920         (cfg_layout_merge_blocks): Likewise.
9921
9922 2005-07-28  Richard Henderson  <rth@redhat.com>
9923
9924         PR target/17692
9925         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
9926         when expanding to nothing.
9927
9928 2005-07-28  Josh Conner  <jconner@apple.com>
9929
9930         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
9931         (cgraph_decide_inlining_of_small_functions): Likewise.
9932
9933 2005-07-28  Josh Conner  <jconner@apple.com>
9934
9935         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
9936         direction of badness if negative.
9937         (cgraph_default_inline_p): Add reason to parameters, and assign it
9938         a value.
9939         (cgraph_decide_inlining_of_small_functions): New parameter in call
9940         to cgraph_default_inline_p.
9941         (cgraph_decide_inlining_incrementally): Likewise.
9942         * cgraphunit.c (decide_is_function_needed): Likewise.
9943         * cgraph.h (cgraph_default_inline_p): Likewise.
9944
9945 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9946
9947         * builtins.c: Fix comment typo(s).
9948         * genautomata.c: Likewise.
9949         * gimplify.c: Likewise.
9950         * tree-dfa.c: Likewise.
9951         * tree-flow-inline.h: Likewise.
9952         * tree-into-ssa.c: Likewise.
9953         * tree-ssa-alias.c: Likewise.
9954         * tree-ssa-ccp.c: Likewise.
9955         * tree-ssa-copy.c: Likewise.
9956         * tree-ssa-dce.c: Likewise.
9957         * tree-ssa-dom.c: Likewise.
9958         * tree-ssa-operands.c: Likewise.
9959         * tree-tailcall.c: Likewise.
9960         * tree-vectorizer.c: Likewise.
9961         * tree-vrp.c: Likewise.
9962         * tree.c: Likewise.
9963
9964 2005-07-28  Jeff Law  <law@redhat.com>
9965
9966         * tree-vrp.c (test_for_singularity): Extracted from  ...
9967         (simplify_cond_using_ranges): Attempt to simplify a relational
9968         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
9969
9970 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
9971
9972         PR tree-optimization/22506
9973         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
9974         phis whose argument is constant.
9975
9976 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
9977
9978         PR rtl-optimization/18992
9979         Back out this patch:
9980           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9981           PR optimization/12142
9982           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
9983           uses of the register in the SET_SRC.  Remove unnecessary argument.
9984
9985         Replace it with this:
9986         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
9987         if flag_non_call_exceptions is set and the insn may trap, pass
9988         pc_rtx as dest for recursion.
9989         In SET_SRC part of SET case, if dest is already set, pass it down
9990         unchanged.
9991
9992 2005-07-28  Jan Hubicka  <jh@suse.cz>
9993
9994         * cfg.c (update_bb_profile_for_threading): Use RDIV.
9995         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
9996         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
9997         roundoff errors.
9998         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
9999         profile when available.
10000
10001 2005-07-28  Jan Beulich <jbeulich@novell.com>
10002
10003         * config/ia64/ia64.c (ia64_load_pair_ok): New.
10004         (ia64_print_operand): Describe and handle 'X'.
10005         (ia64_register_move_cost): Also handle FP_REGS.
10006         (ia64_preferred_reload_class): Likewise.
10007         (ia64_secondary_reload_class): Likewise.
10008         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
10009         it. Also check for ITANIUM_CLASS_FLDP.
10010         * config/ia64/ia64.h (FP_REGNO_P): New.
10011         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
10012         (reg_class): Add FP_REGS.
10013         (REG_CLASS_NAMES): Adjust for it.
10014         (REG_CLASS_CONTENTS): Likewise.
10015         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
10016         (REG_CLASS_FROM_LETTER): Handle 'x'.
10017         (CLASS_MAX_NREGS): Handle FP_REGS.
10018         (MEMORY_MOVE_COST): Likewise.
10019         * config/ia64/ia64.md (itanium_class): Add fldp.
10020         (type): Handle fldp.
10021         (movti_internal): More allowable operand combinations. Use ldfp8 when
10022         splitting unnecessary. Remove predicable attribute. Adjust
10023         itanium_class attribute.
10024         (smuldi3_highpart): Remove outdated comment.
10025         (mulditi3, umulditi3, rotlti3): New expanders.
10026         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
10027         (absti2): Disabled new insn for future reference.
10028         Respective new splitters.
10029         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
10030         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
10031         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
10032
10033 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
10034
10035         PR rtl-optimization/23047
10036         * simplify-rtx.c (simplify_const_relational_operation): Respect
10037         flag_wrapv for comparisons with ABS.
10038
10039 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
10040
10041         PR tree-optimization/22493
10042         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
10043         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
10044
10045 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
10046
10047         * config/frv/frv.opt (moptimize-membar): New.
10048
10049         * doc/invoke.texi: Document -moptimize-membar and its inverse.
10050
10051         * config/frv/frv.h: Remove machine_function definition.
10052
10053         * config/frv/frv.c (struct frv_io): New.
10054         (struct machine_function): Moved from frv.h.  Add has_membar_p.
10055         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
10056         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
10057         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
10058         (frv_optimize_membar_global, frv_optimize_membar): New functions.
10059         (frv_reorg): Call frv_optimize_membar when appropriate.
10060         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
10061         (frv_expand_builtin): Adjust calls accordingly.
10062         (frv_io_address_cookie): New function.
10063         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
10064         load or store rather than a special insn.  Add ccnstant address and
10065         io-type operands to the membar.
10066         (frv_ifcvt_modify_tests): Unsign regno.
10067         (frv_ifcvt_modify_tests): Same.
10068
10069         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
10070         UNSPEC_OPTIONAL_MEMBAR constant.
10071         (builtin_read_<mode>): Delete.
10072         (builtin_write_<mode>): Delete.
10073         ("optional_membar_<mode>"): Add operand.
10074
10075         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
10076         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
10077         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
10078         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
10079         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
10080         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
10081         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
10082         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
10083         * testsuite/gcc.target/frv/all-read-write-1.c: New.
10084
10085 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
10086
10087         * df.c (df_uses_record): Handle SCRATCH.
10088
10089 2005-07-28  Steven Bosscher  <stevenb@suse.de>
10090
10091         PR debug/20161
10092         * passes.c (rest_of_decl_compilation): If decl is a type and
10093         we have encountered errors, don't emit debug information.
10094
10095 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
10096
10097         * params.def: Fixed comment.
10098
10099 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
10100
10101         PR target/19885
10102         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
10103         (TARGET_ASM_UNALIGNED_HI_OP): Add.
10104         (TARGET_ASM_UNALIGNED_SI_OP): Add.
10105
10106 2005-07-27  Steven Bosscher  <stevenb@suse.de>
10107
10108         PR c++/22003
10109         * varasm.c (assemble_start_function): Don't do anything that may
10110         require a CFG if the current function is a thunk.
10111
10112 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
10113
10114         * doc/install.texi (Prerequisites): Mention that perl is needed
10115         to do export control in libstdc++ targetting Darwin.
10116
10117 2005-07-27  Steven Bosscher  <stevenb@suse.de>
10118
10119         PR rtl-optimization/17808
10120         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
10121         (sched_insns_conditions_mutex_p): Split out from...
10122         (add_dependence): ...here.  But don't call it from here.
10123         (add_dependence_list): Check sched_insns_conditions_mutex_p
10124         before calling add_dependence.
10125         (add_dependence_list_and_free): Likewise.
10126         (fixup_sched_groups): Likewise.
10127         (sched_analyze_1): Likewise.
10128         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
10129         (sched_analyze): Likewise.
10130         (sched_analyze_insn): Likewise.
10131         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
10132         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
10133         dependencies on all COND_EXEC insns to jumps ending basic blocks
10134         when doing intrablock scheduling.
10135         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
10136
10137 2005-07-27  Jeff Law  <law@redhat.com>
10138
10139         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
10140         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
10141         equivalency sets, correctly handle the case were vr0 has an
10142         equivalency set, but vr1 does not.
10143
10144 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
10145
10146         PR tree-optimization/23073
10147         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
10148         vect_print_dump_info before fprintf.
10149
10150 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
10151
10152         PR tree-optimize/22348
10153         * tree-ssa-loop-niter.c (number_of_iterations_cond):
10154         Fold the partial computation.
10155
10156 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
10157
10158         PR tree-optimization/22325
10159         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
10160         Declare.
10161         * tree-scalar-evolution.c (scev_const_prop): Add generic final
10162         value replacement.
10163         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
10164         (force_var_cost): ... this function.
10165         (compute_phi_arg_on_exit): Export.
10166
10167 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
10168
10169         PR tree-optimization/20773
10170         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
10171         edge.
10172
10173 2005-07-27  Richard Guenther  <rguenther@suse.de>
10174
10175         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
10176         Avoid pushing again if current struct contains only
10177         fields we decomposed.
10178
10179 2005-07-27  Jan Hubicka  <jh@suse.cz>
10180
10181         PR tree-optimization/22574
10182         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
10183         not available.
10184
10185         * tree-tailcall.c (decrease_profile): New function.
10186         (eliminate_tail_call): Use it.
10187
10188         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
10189         visibility flags correctly in whole program mode.
10190
10191 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
10192
10193         PR rtl-optimization/22472
10194         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
10195
10196 2005-07-26  Steven Bosscher  <stevenb@suse.de>
10197
10198         PR tree-optimization/22504
10199         * tree-complex.c (expand_complex_addition): Use 'code' instead
10200         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
10201
10202 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
10203
10204         * config.gcc (cpu_type): Add frv case.
10205         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
10206         (supported_defaults): Add fr550 case.
10207
10208 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
10209
10210         PR 22591
10211         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
10212         whether a pointer of type T * may point to objects of type T *.
10213
10214 2005-07-26  DJ Delorie  <dj@redhat.com>
10215
10216         * configure: Regenerate.
10217
10218 2005-07-26  Dale Johannesen  <dalej@apple.com>
10219
10220         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
10221
10222 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
10223
10224         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
10225         Clarify use of "build" in name.
10226
10227 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
10228
10229         * doc/extend.texi (Raw read/write Functions): New section.
10230         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
10231         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
10232         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
10233         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
10234         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
10235         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
10236         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
10237         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
10238         * config/frv/frv.c: Add bdesc_loads global.
10239         Add bdesc_stores global.
10240         (frv_init_builtins): Add support for __builtin_{read/write}*.
10241         (frv_volatile_memref): New.
10242         (frv_expand_load_builtin): New.
10243         (frv_expand_store_builtin): New.
10244         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
10245         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
10246         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
10247         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
10248         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
10249         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
10250         (builtin_read_<mode>): New.
10251         (builtin_write_<mode>): New.
10252         (builtin_write64): New.
10253         (optional_membar_<mode>): New.
10254
10255 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
10256
10257         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
10258         (rather than units) against HOST_BITS_PER_WIDE_INT.
10259
10260 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
10261
10262         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
10263         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
10264         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
10265         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
10266         FSF address.
10267
10268         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
10269         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
10270         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
10271         comment typos.
10272         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
10273
10274 2005-07-26  Richard Guenther  <rguenther@suse.de>
10275
10276         PR tree-optimization/22486
10277         * fold-const.c (fold_unary): Fold away useless component
10278         references of the form (T *)&T.x, if the address
10279         doesn't change.
10280
10281 2005-07-25  James E Wilson  <wilson@specifixinc.com>
10282
10283         * dwarf2out.c (add_call_src_coords_attributes): New.
10284         (gen_inlined_subroutine_die): Call it.
10285         (maybe_emit_file, init_file_table): Add comments.
10286         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
10287         maybe_emit_file.
10288         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
10289         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
10290         * tree.h (BLOCK_SOURCE_LOCATION): New.
10291         (struct tree_block): New field locus.
10292
10293 2005-07-26  Andreas Schwab  <schwab@suse.de>
10294
10295         PR rtl-optimization/23043
10296         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
10297         when allocating a struct unoccr.
10298
10299 2005-07-25  Richard Henderson  <rth@redhat.com>
10300
10301         PR 22626
10302         * tree-complex.c (gate_no_optimization): True if errors.
10303         * Makefile.in (tree-complex.o): Update dependencies.
10304
10305 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
10306
10307         * config/frv/predicates.md (integer_register_operand): Use
10308         GPR_AP_OR_PSEUDO_P.
10309
10310 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
10311
10312         PR tree-opt/22484
10313         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
10314         after fold.
10315         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
10316
10317 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
10318
10319         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
10320         types when flag_unsafe_math_optimizations is true.
10321
10322 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
10323
10324         * gcc.c (option_map): Add --sysroot.
10325         (process_command): Handle --sysroot.
10326         (display_help): Document it.
10327         * doc/cppopts.tex (-isysroot): Document.
10328         * doc/invoke.texi (--sysroot): Document.
10329         * doc/install.texi (--with-build-sysroot): Document.
10330
10331         * Makefile.in (inhibit_libc): New variable.
10332         (INHIBIT_LIBC_CFLAGS): Likewise.
10333         (LIBGCC2_CFLAGS): Include
10334         $(INHIBIT_LIBC_CFLAGS).
10335         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
10336         ($(T)crtbegin.o): Do not use @inhibit_libc@.
10337         ($(T)crtend.o): Likewise.
10338         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
10339         ($(T)crtendS.o): Likewise.
10340         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
10341         ($(T)crtendT.o): Likewise.
10342         (stmp-fixinc): Do not complain about missing headers if
10343         inhibit_libc.
10344         * configure.ac (inhibit_libc): Set it to true/false.
10345         (--with-build-sysroot): New option.  Use it to set
10346         SYSTEM_HEADER_DIR.
10347         * configure: Regenerated.
10348
10349 2005-07-25  Manfred Hollstein  <mh@suse.com>
10350
10351         * calls.c (store_one_arg): Fix unsigned comparison warning.
10352
10353 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10354
10355         PR other/22337
10356         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
10357         (ggc_print_statistics): Initialize variable before use.
10358
10359 2005-07-25  Richard Guenther  <rguenther@suse.de>
10360
10361         * tree-dfa.c (mark_new_vars_to_rename): Protect against
10362         calling with a PHI_NODE argument.
10363
10364         * tree-flow-inline.h (overlap_subvar): Protect against
10365         possible overflow.
10366
10367 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
10368
10369         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
10370         * configure: Regenerate.
10371
10372 2005-07-25  Ira Rosen  <irar@il.ibm.com>
10373
10374         * expr.c (highest_pow2_factor): Make extern.
10375         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
10376         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
10377         record_array_differ_p, array_ptr_differ_p): Likewise.
10378         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
10379         additional cases. Call the above functions.
10380         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
10381         base_object_differ_p when there are two base objects. Otherwise, compare
10382         base address and offset. Call may_alias_p.
10383         (dump_data_reference): Use a correct field name.
10384         (analyze_array): Make static. Initialize new data-ref fields.
10385         (analyze_indirect_ref): New function.
10386         (init_data_ref): Initialize new data-ref fields.
10387         (strip_conversion): Moved from tree-vect-analyze.c.
10388         (analyze_offset_expr, get_ptr_offset, address_analysis,
10389         object_analysis): Likewise.
10390         (analyze_offset): New function.
10391         (create_data_ref): Likewise.
10392         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
10393         dimensions for ARRAY_REFs only.
10394         (build_classic_dist_vector): Make static.
10395         (access_functions_are_affine_or_constant_p): Call macro to get the
10396         address of access functions.
10397         (compute_all_dependences): Add new parameter
10398         compute_self_and_read_read_dependences. Compute self and read-read
10399         dependences if it is true.
10400         (find_data_references_in_loop): Call create_data_ref. Initialize new
10401         data-ref fields.
10402         (compute_data_dependences_for_loop): Add new parameter
10403         compute_self_and_read_read_dependences. Remove parameter nb_loops,
10404         compute nb_loops. Call compute_all_dependences,
10405         build_classic_dist_vector and build_classic_dir_vector with correct
10406         parameters.
10407         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
10408         with correct parameters. Compare dimensions for ARRAY_REFs only.
10409         (free_data_refs): Call macro to free access functions.
10410         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
10411         fields from stmt_vinfo.
10412         (struct base_object_info): New structure.
10413         (struct data_reference): Move fields to base_object_info. Add fields
10414         first_location and object_info for above structures. Move fields from
10415         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
10416         aligned_to.  Add macros to access the new fields.
10417         Update functions declarations.
10418         * tree-flow.h (is_aliased_with): Declare.
10419         * tree-loop-linear.c (linear_transform_loops): Call
10420         compute_data_dependences_for_loop with correct parameters.
10421         * tree-ssa-alias.c (is_aliased_with): New function.
10422         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
10423         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
10424         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
10425         vect_base_addr_differ_p, compute_subscript_distance and
10426         build_classic_dist_vector. Add printings. Check absolute value of
10427         distance.
10428         (vect_analyze_data_ref_dependences): Go through ddrs instead of
10429         data-refs.
10430         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
10431         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
10432         to bytes. Add printing.
10433         (vect_compute_data_refs_alignment): Go through loads and stores in one
10434         loop.
10435         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
10436         vect_analyze_data_ref_access): Likewise.
10437         (vect_analyze_pointer_ref_access): Remove.
10438         (vect_address_analysis, vect_object_analysis): Likewise.
10439         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
10440         and analyze data-refs in the loop.
10441         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
10442         fields of data-ref instead of stmt. Add init to the offset from the
10443         base.
10444         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
10445         (vect_update_init_of_dr): Likewise.
10446         (vect_update_inits_of_drs): Go through loads and stores in one loop.
10447         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
10448         removed fields.
10449         (new_loop_vec_info): Initialize new fields.
10450         (destroy_loop_vec_info): Free new fields.
10451         (vect_strip_conversion): Remove.
10452         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
10453         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
10454         datarefs. Add new field ddrs.
10455         Add macros for the new fields access.
10456         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
10457         base_aligned_p, misalignment, memtag, ptr_info and subvars.
10458         Remove their macros.
10459         * tree.h (highest_pow2_factor): Declare.
10460
10461 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
10462
10463         * calls.c (store_one_arg): Check for sibling call MEM arguments
10464         from already clobbered incoming argument area.
10465
10466 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10467
10468         * c-common.c (check_missing_format_attribute): New.
10469         * c-common.h (check_missing_format_attribute): Likewise.
10470         * c-typeck.c (convert_for_assignment): Use it.
10471
10472 2005-07-24  Andreas Schwab  <schwab@suse.de>
10473
10474         * config/m68k/m68k.md ("extendqidi2"): When source is an address
10475         register use a word move.  Correct operand of ext.w in 68000 code.
10476
10477 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
10478
10479         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
10480         variables as declarations, rather than definitions.
10481
10482 2005-07-24  Ira Rosen  <irar@il.ibm.com>
10483
10484         PR tree-optimization/22526
10485         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
10486         of the zero node.
10487
10488 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10489
10490         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
10491         that C99 reserve for future use. Use it to define clog10,
10492         clog10f and clog10l.
10493
10494 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10495
10496         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
10497         * configure.ac: Check for -Wmissing-format-attribute.
10498
10499         * configure: Regenerate.
10500
10501 2005-07-23  Richard Henderson  <rth@redhat.com>
10502
10503         PR tree-optimization/22623
10504         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
10505
10506 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
10507
10508         PR target/22577
10509         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
10510
10511 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10512
10513         * Makefile.in (C_TREE_H): Update dependencies.
10514         * c-tree.h: Include toplev.h.
10515         * diagnostic.h (diagnostic_set_info): Add format attribute.
10516         * rtl-error.c (diagnostic_for_asm): Likewise.
10517
10518 2005-07-23  Chao-ying Fu  <fu@mips.com>
10519
10520         * config/mips/mips-dsp.md: New file.
10521         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
10522         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
10523         functions.
10524         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
10525         MIPS_BUILTIN_BPOSGE32.
10526         (mips_expand_builtin_direct): Add one parameter to indicate that
10527         builtin functions need to return a value.
10528         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
10529         functions.
10530         (mips_regno_to_class): Add classes for 12 new DSP registers.
10531         (mips_subword): Change to check four HI registers.
10532         (mips_output_move): Output move to and from 6 new DSP accumulators.
10533         (override_options): Make sure -mdsp and -mips16 are not used together.
10534         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
10535         for machine modes.
10536         (mips_conditional_register_usage): Disable 6 new DSP accumulators
10537         when !TARGET_DSP.
10538         (print_operand): Add 'q' for printing DSP accumulators.
10539         (mips_cannot_change_mode_class): Check ACC_REGS.
10540         (mips_secondary_reload_class): Check ACC_REGS.
10541         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
10542         (mips_register_move_cost): Check ACC_REGS.
10543         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
10544         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
10545         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
10546         (dsp_bdesc): New array.
10547         (bdesc_arrays): Add DSP builtin function table.
10548         (mips_prepare_builtin_arg): Check predicate again after
10549         copy_to_mode_reg.
10550         (mips_expand_builtin): Add one more parameter to
10551         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
10552         MIPS_BUILTIN_BPOSGE32.
10553         (mips_init_builtins): Initialize new function types.
10554         (mips_expand_builtin_direct): Check if builtin functions need to
10555         return a value and pass operands properly.
10556         (mips_expand_builtin_bposge): New function.
10557         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
10558         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
10559         (FIRST_PSEUDO_REGISTER): Increase to 188.
10560         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
10561         Update for 12 new DSP registers.
10562         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
10563         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
10564         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
10565         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
10566         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
10567         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
10568         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
10569         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
10570         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
10571         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
10572         (REGISTER_NAMES): Add names for 12 new DSP registers.
10573         * config/mips/mips.md: Include mips-dsp.md.
10574         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
10575         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
10576         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
10577         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
10578         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
10579         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
10580         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
10581         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
10582         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
10583         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
10584         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
10585         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
10586         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
10587         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
10588         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
10589         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
10590         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
10591         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
10592         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10593         (UNSPEC_RDDSP): New constants.
10594         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
10595         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
10596         A<-d alternative.
10597         * config/mips/mips.opt (-mdsp): New option.
10598         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
10599         (reg_imm10_operand): New predicates.
10600         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
10601         * doc/invoke.texi (-mdsp): Document new option.
10602
10603 2005-07-22  DJ Delorie  <dj@redhat.com>
10604
10605         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
10606         to warning calls.
10607         * tree-inline.c (inlinable_function_p): Likewise.
10608
10609 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
10610
10611         PR debug/21828
10612         * toplev.c (check_global_declarations): Do not mark undefined
10613         variables as DECL_IGNORED_P.
10614         * varasm.c (first_global_object_name): GTY it.
10615         (weak_global_object_name): Likewise.
10616         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
10617         a string to go into {weak,first}_global_object_name.
10618
10619 2005-07-22  DJ Delorie  <dj@redhat.com>
10620
10621         * c-format.c (check_function_format): Change warning control
10622         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
10623
10624 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
10625
10626         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
10627         &PTR->FLD a dereference of PTR.
10628         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
10629         a potential dereference of PTR.
10630
10631 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
10632
10633         PR rtl-optimization/20370
10634         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
10635         call allocate_reg_info if necessary.
10636
10637         PR rtl-optimization/21848
10638         * calls.c (emit_library_call_value_1): For const functions, add
10639         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
10640
10641         PR rtl-optimization/22445
10642         * cselib.c (target.h): Include.
10643         (rtx_equal_for_cselib_p): Allow commutative matches.
10644         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
10645         Remove MODE parameter.  Changed all callers.
10646
10647         PR rtl-optimization/22258
10648         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
10649         New functions.
10650         (try_combine): Use likely_spilled_retval_p.
10651
10652 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
10653
10654         * config.gcc: Add crx-elf support.
10655
10656         * doc/contrib.texi: Mention crx.
10657         * doc/extend.texi: Document crx extensions.
10658         * doc/install.texi: Document crx install.
10659         * doc/invoke.texi: Document crx options.
10660         * doc/md.texi: Document crx constraints.
10661
10662         * config/crx/crx-protos.h: New file.
10663         * config/crx/crx.c: New file.
10664         * config/crx/crx.h: New file.
10665         * config/crx/crx.md: New file.
10666         * config/crx/crx.opt: New file.
10667         * config/crx/t-crx: New file.
10668
10669 2005-07-22  Manfred Hollstein  <mh@suse.com>
10670
10671         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
10672         warnings.
10673         (int_add_graph_edge): Likewise.
10674         (collapse_nodes): Likewise.
10675         (process_unification_queue): Likewise.
10676
10677 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10678             Laurent GUERBY  <laurent@guerby.net>
10679
10680         PR tree-optimization/22336
10681         * function.c (record_block_change): Check for
10682         cfun->ib_boundaries_block.
10683
10684 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
10685
10686         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
10687         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
10688
10689 2005-07-21  DJ Delorie  <dj@redhat.com>
10690
10691         * toplev.c (warn_deprecated_use): Add warning control to warning
10692         call.
10693         * c-typeck.c (parser_build_binary_op): Likewise.
10694         (c_finish_if_stmt): Likewise.
10695         * c-common.c (check_function_sentinel): Likewise.
10696         (check_nonnull_arg): Likewise.
10697
10698 2005-07-21  Richard Henderson  <rth@redhat.com>
10699
10700         PR tree-opt/22504
10701         * tree-complex.c (complex_ssa_name_components): New.
10702         (cvc_lookup): Allow entry not found.
10703         (create_components): Remove.
10704         (create_one_component_var, get_component_var): New.
10705         (get_component_ssa_name, set_component_ssa_name): New.
10706         (extract_component): Use get_component_ssa_name.
10707         (update_complex_components): Use set_component_ssa_name.
10708         (update_complex_components_on_edge): Likewise.
10709         (update_phi_components): Create new PHI nodes directly, instead
10710         of adding insns to edges.
10711         (tree_lower_complex): Allocate and free complex_variable_components
10712         and complex_ssa_name_components here.
10713
10714 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
10715
10716         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
10717         revert to returning false.
10718
10719 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10720
10721         PR target/21149
10722         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
10723
10724 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10725
10726         PR target/22576
10727         * config/i386/i386.md (cmpxf): Change operand constraints
10728         to "nonmemory_operand".
10729
10730 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10731
10732         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
10733
10734 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10735
10736         PR middle-end/21180
10737         * fold-const.c (fold_build1): Add checksum for the operands.
10738         (fold_build2): Likewise.
10739         (fold_build3): Likewise.
10740
10741 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10742
10743         PR middle-end/19055
10744         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
10745
10746 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10747
10748         * common.opt (-fforward-propagate): Committed by mistake,
10749         removed.
10750
10751 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10752
10753         * reg-stack.c: Fix comment typo(s).
10754         * tree-ssa-operands.c: Likewise.
10755         * tree-vectorizer: Likewise.
10756
10757 2005-07-21  Nick Clifton  <nickc@redhat.com>
10758
10759         * config/sh/symbian.c: Replace C++ style line comments with C
10760         style line comments.
10761         (symbian_add_attribute): Do not use a ? operator on the LHS of
10762         an assignment.
10763         (sh_symbian_handle_dll_attribute): Change the type of the
10764         method vector to "VEC(tree,gc)*" and use vector accessor
10765         macros to walk over the elements.
10766         (symbian_export_vtable_and_rtti_p): Likewise.
10767         (symbian_class_needs_attribute_p): Likewise.
10768
10769 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10770
10771         PR target/22085
10772         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
10773         initialize targetm.resolve_overloaded_builtin here.
10774         (altivec_expand_overloaded_builtin): Make it non-static.
10775         * config/rs6000/rs6000-protos.h
10776         (altivec_expand_overloaded_builtin): New prototype.
10777         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
10778         targetm.resolve_overloaded_builtin here.
10779         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
10780
10781 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10782             Zdenek Dvorak  <dvorakz@suse.cz>
10783
10784         PR tree-optimization/19210
10785         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
10786         New.
10787         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
10788         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
10789         rely on unproven assumptions.
10790         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
10791         * tree-flow.h (number_of_iterations_exit): Add final parameter.
10792         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
10793         to number_of_iterations_exit.
10794         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
10795         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
10796         * tree-ssa-loop-niter.c (find_loop_niter,
10797         estimate_numbers_of_iterations_loop): Likewise.
10798         (number_of_iterations_exit): Honor the new options.
10799         * doc/invoke.texi (Wunsafe-loop-optimizations,
10800         funsafe-loop-optimizations): Document them.
10801
10802 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
10803
10804         PR rtl-optimization/22167
10805         * gcse.c (hoist_code): Fix hoist_exprs[] check.
10806
10807 2005-07-20  Adam Nemet  <anemet@lnxw.com>
10808
10809         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
10810         __do_global_dtors_aux longcall.
10811
10812 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
10813
10814         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
10815         (old_special_pred_table): Don't reference
10816         SPECIAL_MODE_PREDICATES.
10817         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
10818         * config/arc/arc.h: Don't mention PREDICATE_CODES.
10819         * config/sh/predicates.h: Don't mention
10820         SPECIAL_MODE_PREDICATES.
10821         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
10822         Remove.
10823
10824 2005-07-20  DJ Delorie  <dj@redhat.com>
10825
10826         * config.gcc: Add m32c-elf support.
10827
10828         * doc/contrib.texi: Mention m32c.
10829         * doc/extend.texi: Document m32c extensions.
10830         * doc/install.texi: Mention m32c.
10831         * doc/invoke.texi: Document m32c options.
10832         * doc/md.texi: Document m32c constraints.
10833
10834         * config/m32c/addsub.md: New file.
10835         * config/m32c/bitops.md: New file.
10836         * config/m32c/cond.md: New file.
10837         * config/m32c/jump.md: New file.
10838         * config/m32c/m32c-lib1.S: New file.
10839         * config/m32c/m32c-lib2.c: New file.
10840         * config/m32c/m32c-modes.def: New file.
10841         * config/m32c/m32c-pragma.c: New file.
10842         * config/m32c/m32c-protos.h: New file.
10843         * config/m32c/m32c.abi: New file.
10844         * config/m32c/m32c.c: New file.
10845         * config/m32c/m32c.h: New file.
10846         * config/m32c/m32c.md: New file.
10847         * config/m32c/m32c.opt: New file.
10848         * config/m32c/minmax.md: New file.
10849         * config/m32c/mov.md: New file.
10850         * config/m32c/muldiv.md: New file.
10851         * config/m32c/predicates.md: New file.
10852         * config/m32c/prologue.md: New file.
10853         * config/m32c/shift.md: New file.
10854         * config/m32c/t-m32c: New file.
10855
10856 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10857
10858         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
10859         (stack_protect_set, stack_protect_test): New expanders.
10860         (stack_protect_set_si, stack_protect_set_si_media,
10861         stack_protect_set_di_media, stack_protect_test_si,
10862         stack_protect_test_si_media, stack_protect_test_di_media):
10863         New insns.
10864
10865 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
10866
10867         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
10868
10869 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
10870
10871         * tree.h (tree_expr_nonzero_p): Export.
10872         * fold-const.c (tree_expr_nonzero_p): Likewise.
10873         Return true for CALL_EXPRs that are alloca calls.
10874         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
10875         against zero.
10876         * tree-flow.h (expr_computes_nonzero): Remove.
10877         * tree-vrp.c (expr_computes_nonzero): Remove.
10878         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
10879         (extract_range_from_unary_expr): Likewise.
10880         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
10881         tree_expr_nonzero_p.
10882
10883 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
10884
10885         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
10886         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
10887         extra arg "picreg" and use it instead of pic_offset_table_rtx.
10888         All callers changed.
10889         (frame_related_constant_load): New arg "related" which controls
10890         setting of RTX_FRAME_RELATED_P.  All callers changed.
10891         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
10892         (bfin_expand_prologue): Add stack limit checking.
10893         * config/bfin/bfin.md (trapifcc): New pattern.
10894
10895         * config/bfin/bfin.c: Include "langhooks.h".
10896         (def_builtin): Go through lang_hooks to call builtin_function.
10897
10898         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
10899         * config/bfin/predicates.md (symbol_ref_operand): New.
10900         (call_insn_operand): Delete.  All callers changed to use
10901         register_no_elim_operand.
10902         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
10903         call_cookie field.
10904         (function_arg): Use it to generate the call's operand 2.
10905         (bfin_longcall_p): New function.
10906         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
10907         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
10908         determine if the address needs to be in a REG.
10909         (bfin_handle_longcall_attribute): New function.
10910         (bfin_attribute_table): Add "longcall" and "shortcall".
10911         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
10912         (CUMULATIVE_ARGS): New member call_cookie.
10913         (PREDICATE_CODES): Add symbol_ref_operand.
10914         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
10915         extra USE to the pattern.
10916         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
10917         New patterns, split off call_insn, sibcall_insn, call_value_insn and
10918         sibcall_value_insn; now the new patterns handle direct calls and the
10919         old ones indirect calls.
10920         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
10921
10922 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
10923
10924         * doc/trouble.texi: Update section on handling of empty loops.
10925
10926 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
10927
10928         * config.gcc: Remove support for sparc-*-openbsd*,
10929         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
10930         ns32k-*-netbsd*.
10931         * config.host: Remove support for i860-*-sysv4* as a host.
10932         * config/i860/*, config/ip2k/*, config/ns32k/*,
10933         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
10934         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
10935         mention obsolete ports.
10936
10937 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10938
10939         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
10940         soft frame pointer.
10941         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
10942         of frame_pointer_rtx.
10943         (sh_expand_epilogue): Likewise.
10944         (sh_set_return_address): Likewise.
10945         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
10946         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
10947         offsets from FRAME_POINTER_REGNUM.
10948         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
10949         (sh_register_names): Add initializer for sfp.
10950         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
10951         (VALID_REGISTER_P): Likewise.
10952         (FIRST_PSEUDO_REGISTER): Update.
10953         (DWARF_FRAME_REGISTERS): Define.
10954         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
10955         (HARD_FRAME_POINTER_REGNUM): Define.
10956         (FRAME_POINTER_REGNUM): Redefine.
10957         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
10958         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
10959         from FRAME_POINTER_REGNUM.
10960         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
10961         FRAME_POINTER_REGNUM.
10962         (REG_CLASS_CONTENTS): Add sfp.
10963         (REG_ALLOC_ORDER): Likewise.
10964         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
10965         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
10966         of frame_pointer_rtx.
10967         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10968
10969 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
10970
10971         * fold-const.c (tree_expr_nonnegative_p): Only return true for
10972         ABS_EXPR when flag_wrapv is false because of INT_MIN.
10973         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
10974         of an ABS_EXPR.
10975         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
10976         ABS_EXPR<x>.
10977
10978 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
10979
10980         Make CONSTRUCTOR use VEC to store initializers.
10981         * c-common.c (complete_array_type): Update to cope with VEC in
10982         CONSTRUCTOR_ELTS.
10983         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
10984         (pp_c_constructor_elts): New function.
10985         * c-pretty-print.h (pp_c_constructor_elts): Declare.
10986         * c-typeck.c (build_function_call, build_c_cast, digest_init,
10987         struct constructor_stack, struct initializer_stack,
10988         constructor_elements, push_init_level, pop_init_level,
10989         add_pending_init, find_init_member, output_init_element): Update to
10990         cope with VEC in CONSTRUCTOR_ELTS.
10991         * coverage.c (build_fn_info_value, build_ctr_info_value,
10992         build_gcov_info): Likewise.
10993         * expr.c (categorize_ctor_elements_1, store_constructor,
10994         expand_expr_real_1): Likewise.
10995         * fold-const.c (fold_ternary): Likewise.
10996         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
10997         gimplify_init_constructor, gimplify_expr): Likewise.
10998         * tree-dump.c (dequeue_and_dump): Likewise.
10999         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
11000         node.
11001         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
11002         CONSTRUCTOR_ELTS.
11003         * tree-sra.c (generate_element_init_1): Likewise.
11004         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
11005         * tree-ssa-operands.c (get_expr_operands): Likewise.
11006         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
11007         * tree-vect-transform.c (vect_get_vec_def_for_operand):
11008         (get_initial_def_for_reduction): Likewise.
11009         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
11010         value handle in annotations.
11011         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
11012         tree_node_structure): Add support for constr_kind.
11013         (build_vector_from_ctor, build_constructor_single,
11014         build_constructor_from_list): New functions.
11015         (build_constructor): Update to take a VEC instead of a TREE_LIST.
11016         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
11017         Update to cope with VEC in CONSTRUCTOR_ELTS.
11018         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
11019         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
11020         CONSTRUCTOR_APPEND_ELT): New macros.
11021         (struct constructor_elt, struct tree_constructor): New data types.
11022         (union tree_node): Add tree_constructor field.
11023         * treestruct.def: Define TS_CONSTRUCTOR.
11024         * varasm.c (const_hash_1, compare_constant, copy_constant,
11025         compute_reloc_for_constant, output_addressed_constants,
11026         initializer_constant_valid_p, output_constant,
11027         array_size_for_constructor, output_constructor): Update to cope with
11028         VEC in CONSTRUCTOR_ELTS.
11029         * vec.h (VEC_empty, VEC_copy): New macros.
11030
11031 2005-07-19  Devang Patel  <dpatel@apple.com>
11032
11033         * dbxout.c (dbxout_type): Check Objective-C++ lang.
11034
11035 2005-07-19  Richard Henderson  <rth@redhat.com>
11036
11037         PR tree-opt/22278
11038         * gimplify.c (gimplify_expr): Use main variant type for the temp
11039         destination for a discarded volatile read.
11040         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
11041         casts between non-void types that change volatility.
11042
11043 2005-07-15  DJ Delorie  <dj@redhat.com>
11044
11045         * toplev.h: Add comment about the first parameter for warning().
11046         * errors.h: Likewise.
11047
11048         * c.opt (Wpragmas): New.
11049         * doc/invoke.texi: Document it.
11050
11051         * function.c (do_warn_unused_parameter): Add warning control to
11052         warning call.
11053         * c-decl.c (warn_if_shadowing): Likewise.
11054         * c-lex.c (cb_def_pragma): Likewise.
11055         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
11056         (pop_alignment): Likewise.
11057         (handle_pragma_pack): Likewise.
11058         (apply_pragma_weak): Likewise.
11059         (handle_pragma_weak): Likewise.
11060         (handle_pragma_redefine_extname): Likewise.
11061         (add_to_renaming_pragma_list): Likewise.
11062         (handle_pragma_extern_prefix): Likewise.
11063         (maybe_apply_renaming_pragma): Likewise.
11064         (handle_pragma_visibility): Likewise.
11065
11066         * config/c4x/c4x-c.c (BAD): Likewise.
11067         (c4x_parse_pragma): Likewise.
11068         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
11069         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
11070         (rs6000_pragma_longcall): Likewise.
11071         * config/v850/v850-c.c (pop_data_area): Likewise.
11072         (ghs_pragma_section): Likewise.
11073         (ghs_pragma_section): Likewise.
11074         (ghs_pragma_interrupt): Likewise.
11075         (ghs_pragma_starttda): Likewise.
11076         (ghs_pragma_startsda): Likewise.
11077         (ghs_pragma_startzda): Likewise.
11078         (ghs_pragma_endtda): Likewise.
11079         (ghs_pragma_endsda): Likewise.
11080         (ghs_pragma_endzda): Likewise.
11081
11082 2005-07-19  Danny Berlin <dberlin@dberlin.org>
11083             Kenneth Zadeck <zadeck@naturalbridge.com>
11084
11085         * Makefile.in: Removed tree-promote-statics.c
11086         * tree-promote-statics.c: Removed.
11087         * common.opt: Removed flag-promote-statics.
11088         * opts.c: Ditto.
11089         * passes.c: Removed tree-promote-statics pass.
11090         * tree-pass.h: Ditto.
11091         * timevar.def: Removed TV_PROMOTE_STATICS.
11092
11093
11094 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
11095
11096         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
11097         and *-*-freebsd9.
11098         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
11099
11100 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11101
11102         PR c/22476
11103         * c-common.c (check_function_arguments): Call
11104         'check_function_format' if either -Wformat or
11105         -Wmissing-format-attribute are specified.
11106         * c-format.c (check_function_format): Check -Wformat before
11107         calling 'check_format_info'.
11108         * c-opts.c (c_common_post_options): Don't warn for
11109         -Wmissing-format-attribute without -Wformat.
11110         * c-typeck.c (convert_for_assignment): Detect additional cases for
11111         -Wmissing-format-attribute.
11112         * doc/invoke.texi (-Wmissing-format-attribute): Document new
11113         behavior.
11114
11115 2005-07-19  Richard Guenther  <rguenther@suse.de>
11116
11117         * config/i386/i386.md (lrint<mode>2): Use temporary
11118         instead of clobbering non-existent memory.
11119
11120 2005-07-19  Nick Clifton  <nickc@redhat.com>
11121
11122         * config/avr/avr.c (legitimate_address_p): Fix debugging print
11123         statement to avoid displaying ASCII control characters.
11124
11125 2005-07-19  Ben Elliston  <bje@au.ibm.com>
11126
11127         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
11128         * cfganal.c (find_edge_index): Ditto.
11129         * combine.c (combine_instructions): Ditto.
11130         * ddg.c (create_scc): Ditto.
11131         (find_successors): Ditto.
11132         (find_predecessors): Ditto.
11133         (find_nodes_on_paths): Ditto.
11134         (longest_simple_path): Ditto.
11135         * flow.c (update_life_info): Ditto.
11136         (count_or_remove_death_notes): Ditto.
11137         (clear_log_links): Ditto.
11138         * modulo-sched.c (generate_reg_moves): Ditto.
11139         (find_max_asap): Ditto.
11140         (find_max_hv_min_mob): Ditto.
11141         (find_max_dv_min_mob): Ditto.
11142         * sbitmap.c (sbitmap_first_set_bit): Ditto.
11143         * sched-rgn.c (extract_edgelst): Ditto.
11144         * tree-into-ssa.c (prepare_names_to_update): Ditto.
11145         (dump_update_ssa): Ditto.
11146         (ssa_names_to_replace) Ditto.
11147         (switch_virtuals_to_full_rewrite): Ditto.
11148         (update_ssa): Ditto.
11149         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
11150
11151 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
11152
11153         Fix PR tree-optimization/22483
11154
11155         * tree-complex.c (create_components): Use
11156         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
11157         * tree-flow-inline.h (fill_referenced_var_vec): New function.
11158         * tree-flow.h (safe_referenced_var_iterator): New structure.
11159         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
11160         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
11161         safe_referenced_var iterator.
11162         (add_type_alias): Ditto.
11163
11164 2005-07-19  Steven Bosscher  <stevenb@suse.de>
11165
11166         * loop-init.c (rest_of_handle_loop2): Remove.
11167         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
11168         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
11169         (pass_rtl_loop_init, pass_rtl_loop_done,
11170         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
11171         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
11172         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
11173         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
11174         pass_tree_loop_done, and pass_tree_unswitch.
11175         (gate_loop): Rename to gate_tree_loop.
11176         * passes.c (init_optimization_passes): Update for renamed tree
11177         loop passes.  Add the new loop2 passes as subpasses of loop2.
11178         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
11179         Update for the renamed tree loop passes.
11180
11181 2005-07-18  Ian Lance Taylor  <ian@airs.com>
11182
11183         PR middle-end/22057
11184         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
11185         blocks when optimizing.
11186
11187 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
11188
11189         * common.opt (frename-registers): Initialize to 2.
11190         (fweb): Ditto.
11191         (fgcse-after-reload): Ditto.
11192         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
11193         (process_options): Only change flag_web, flag_rename_registers,
11194         and flag_rerun_cse_after_loop if not explicitly set by user.
11195
11196 2005-07-18  Jan Beulich  <jbeulich@novell.com>
11197
11198         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
11199         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
11200         in 64-bit mode the same as DImode in 32-bit mode.
11201         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
11202         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
11203         mode. Add new mode parameter.
11204         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
11205         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
11206         x86_64_shift_adj): New expanders.
11207         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
11208         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
11209         insns.
11210         Respective new splitters. Use renamed shift splitter helpers in 32-bit
11211         DImode shift splitters.
11212         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
11213         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
11214         mode parameter.
11215
11216 2005-07-18  Jan Beulich  <jbeulich@novell.com>
11217
11218         * i386.md (movdi_extzv_1): New.
11219         (zero_extendhidi2): Combine alternatives and never force use of
11220         REX64 prefix.
11221         (zero_extendqidi2): Likewise. Don't restrict input selection.
11222
11223 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
11224
11225         Fix PR tree-optimization/22531
11226         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
11227          moment.
11228
11229 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
11230
11231         * tree-promote-statics.c (pass_promote_statics): Change dump file
11232          name.
11233
11234 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
11235
11236         * tree-optimize.c (init_tree_optimization_passes): Add
11237         pass_eliminate_useless_stores pass.
11238         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
11239         * tree-ssa-pre.c (is_copy_stmt): New function.
11240         (follow_copies_till_vuse): Ditto.
11241         (do_eustores): Ditto.
11242         (gate_eustores): Ditto.
11243
11244 2005-07-16  Richard Henderson  <rth@redhat.com>
11245
11246         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
11247
11248 2005-07-16 Danny Berlin <dberlin@dberlin.org>
11249            Kenneth Zadeck <zadeck@naturalbridge.com>
11250
11251         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
11252         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
11253         ipa-type-escape.h, tree-promote-statics.c
11254         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
11255         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
11256         tree-promote-statics.c: new files.
11257         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
11258         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
11259         int nonlocal_set_p, mark_constant_function): Deleted.
11260         (rest_of_handle_cfg): Removed call to mark_constant_function.
11261         (nonoverlapping_component_refs_p): Added calls to support
11262         type based aliasing.
11263         * tree-ssa-alias.c (may_alias_p,
11264         compute_flow_insensitive_aliasing): Ditto.
11265         * calls.c (flags_from_decl_or_type): Removed reference to
11266         cgraph_rtl_info.
11267         * c-typeck.c (convert_arguments): Make builtins tolerant of having
11268         too many arguments.  This is necessary for Spec 2000.
11269         * cgraph.h (const_function, pure_function): Removed.
11270         * common.opt: Added "fipa-pure-const", "fipa-reference",
11271         "fipa-type-escape", and "ftree-promote-static".
11272         * opts.c: Ditto.
11273         * passes.c: Added ipa and tree-promote-statics passes.
11274         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
11275         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
11276         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
11277         * tree-flow.h: Added exposed sra calls and addition of
11278         reference_vars_info field for FUNCTION_DECLS.
11279         * tree-pass.h: Added passes.
11280         * tree-sra.c: (sra_init_cache): New function.
11281         (sra_insert_before, sra_insert_after) Made public.
11282         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
11283         and made public.
11284         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
11285         aliasing. (may_alias_p): Added code to use type escape analysis to
11286         improve alias sets.
11287         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
11288         code to prune clobbers of static variables based on information
11289         produced in ipa-reference pass.  Changed call clobbering so that
11290         statics are not marked as clobbered if the call does not clobber
11291         them.
11292
11293 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
11294
11295         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
11296         too.
11297
11298 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11299
11300         * doc/install.texi (*-*-solaris2*): Document recommended version
11301         of GNU binutils and mention GNU linker problem on Solaris 10.
11302
11303 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
11304
11305         PR c/22421
11306         * c-decl.c (c_build_bitfield_integer_type): New function.
11307         (finish_struct): Call it.
11308         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
11309
11310 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11311
11312         * c-typeck.c (digest_init): Call 'convert_for_assignment'
11313         before returning.
11314
11315 2005-07-16  Jan Hubicka  <jh@suse.cz>
11316
11317         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
11318         (scale_bbs_frequencies_int): Watch roundoff errors.
11319         * predict.c (return_prediction): Initialize return_stmt.
11320
11321 2005-07-16  Jan Hubicka  <jh@suse.cz>
11322
11323         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
11324         after RTL profiling.
11325
11326 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
11327
11328         PR middle-end/22398
11329         * fold-const.c (build_range_check): Convert high/low to etype
11330         if we are only comparing against exp.
11331
11332 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
11333
11334         Fix PR tree-optimization/22376
11335         * tree-ssa-structalias.c (build_constraint_graph): We really meant
11336         special var here.
11337         (need_to_solve): New function.
11338         (compute_points_to_sets): Use it.
11339
11340 2005-07-15  Jan Hubicka  <jh@suse.cz>
11341
11342         * cfg.c (update_bb_profile_for_threading): More diagnostic.
11343         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
11344
11345 2005-07-15  Richard Guenther  <rguenther@suse.de>
11346
11347         * c-common.c (handle_flatten_attribute): New function.
11348         Add flatten function attribute.
11349         * doc/extend.texi: Document flatten function attribute.
11350         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
11351         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
11352         New functions.
11353         (cgraph_decide_inlining): Handle functions with flatten
11354         attribute.
11355
11356 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
11357
11358         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
11359         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
11360         UNSPEC_XCHG, UNSPEC_AND): New.
11361         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
11362         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
11363         * config/rs6000/sync.md (FETCHOP): New code macro.
11364         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
11365         New code attrs.
11366         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
11367         (sync_compare_and_swap<mode>): Same.
11368         (sync_lock_test_and_set<mode>): Same.
11369         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
11370         for QImode and HImode, and not PPC405.
11371         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
11372         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
11373         (sync_<fetchop>{si,di}_internal): New.
11374         (sync_nand{si,di}_internal): New.
11375         (sync_old_<fetchop>{si,di}_internal): New.
11376         (sync_old_nand{si,di}_internal): New
11377         (sync_new_<fetchop>{si,di}_internal): New.
11378         (sync_new_nand{si,di}_internal): New.
11379         (atomic_and{si,di}): New.
11380         (sync_new_nand{si,di}_internal): New.
11381         (atomic_and{si,di}): New.
11382         (sync_add<mode>_internal): Delete.
11383         (sync_addshort_internal): Use unspec instead of unspec_volatile.
11384         (sync_sub<mode>_internal): Delte.
11385         (sync_subshort_internal): New.
11386         (sync_andsi_internal): Use unspec instead of unspec_volatile.
11387         (sync_anddi_internal): Delete.
11388         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
11389         (sync_booldi_internal): Delete.
11390         (sync_boolc<mode>_internal): Delete.
11391         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
11392         (sync_boolc<mode>_internal2): Delete.
11393         (sync_boolcc<mode>_internal): Delete.
11394         (isync, lwsync): Use unspec instead of unspec_volatile.
11395         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
11396         Revert UNSPEC_VOLATILE.
11397         (rs6000_split_atomic_op): New.
11398         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
11399
11400 2005-07-14  Eric Christopher  <echristo@redhat.com>
11401
11402         * config/mips/mips.c (mips_canonicalize_comparison): Cast
11403         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
11404
11405 2005-07-14  Eric Christopher  <echristo@redhat.com>
11406
11407         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
11408
11409 2005-07-14  Steven Bosscher  <stevenb@suse.de>
11410
11411         PR tree-optimization/22230
11412         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
11413         the computation of the four cross productions for "range op range".
11414
11415 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
11416             Ulrich Weigand  <uweigand@de.ibm.com>
11417
11418         PR target/20126
11419         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
11420         in some insn.
11421
11422 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
11423
11424         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
11425
11426 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
11427
11428         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
11429
11430 2005-07-14  Richard Guenther  <rguenther@suse.de>
11431
11432         PR middle-end/22347
11433         * config/i386/i386-protos.h (ix86_function_value): Change
11434         prototype to match new target hook.
11435         * config/i386/i386.c (ix86_value_regno): Change prototype
11436         to take extra type argument.
11437         (TARGET_FUNCTION_VALUE): Define.
11438         (ix86_function_ok_for_sibcall): Pass extra argument to
11439         ix86_value_regno, check return slot rtx for exact match.
11440         (ix86_function_value): Take extra parameter.  Dispatch to
11441         ix86_value_regno with fndecl/fntype as provided.
11442         (ix86_value_regno): Handle extra type argument.
11443         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
11444
11445         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
11446         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
11447         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
11448         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
11449         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
11450
11451 2005-07-14  Richard Guenther  <rguenther@suse.de>
11452
11453         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
11454         * calls.c (expand_call): Pass fntype to hard_function_value.
11455         (emit_library_call_value_1): Likewise.
11456         * explow.c: Include target.h.
11457         (hard_function_value): Take extra argument, the fntype.
11458         Use new target hook for function_value.
11459         * expr.h (hard_function_value): Change prototype.
11460         * function.c (aggregate_value_p): Pass 0 as fntype to
11461         hard_function_value.
11462         (assign_parms): Use new target hook for function_value.
11463         Pass 0 as fntype to hard_function_value.
11464         (expand_function_end): Likewise.
11465         * reg-stack.c: Include target.h.
11466         (stack_result): Use new target hook for function_value.
11467         * target-def.h: New target hook function_value.
11468         * target.h: Likewise.
11469         * targhooks.c (default_function_value): New function.
11470         * targhooks.h (default_function_value): Declare.
11471
11472 2005-07-13  Ian Lance Taylor  <ian@airs.com>
11473
11474         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
11475
11476 2005-07-14  Jan Hubicka  <jh@suse.cz>
11477
11478         * tree-dfa.c (dump_variable): Use default_def function.
11479         * tree-ssa-alias.c (dump_points_to_info): Likewise.
11480         * tree-ssa.c (verify_use): Likewise.
11481         * tree-ssanames.c (release_ssa_name): Likewise.
11482         * tree-tailcall.c (eliminate_tail_call): Likewise.
11483         (tree_optimize_tail_calls_1): Likewise.
11484         * tree-vrp.c (get_value_range): Likewise.
11485
11486 2005-07-14  Ben Elliston  <bje@au.ibm.com>
11487
11488         * gcc.c (main): Compare language[0] with '*' when iterating over
11489         the infiles.
11490
11491 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11492
11493         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
11494         "s390_emit_compare".  Add handling of CCZ1mode.
11495         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
11496         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
11497         checking.
11498         (s390_branch_condition_mask): Add CCZ1mode handling.
11499         * config/s390/s390.md: ("seq", "*seq"): New pattern.
11500         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
11501         Use CCZ1mode instead of CCZmode.
11502         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
11503
11504 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11505
11506         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
11507         pattern.
11508         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
11509
11510 2005-07-13  Eric Christopher  <echristo@redhat.com>
11511
11512         * config/mips/mips.c (mips_canonicalize_comparison): New.
11513         (mips_emit_int_relational): Use.
11514
11515 2005-07-13  Eric Christopher  <echristo@redhat.com>
11516
11517         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11518         static extra parts.
11519         * config/s390/s390.md: Include tpf.md. Move tpf specific
11520         patterns...
11521         * config/s390/tpf.md: To here.
11522         * config/s390/s390.opt: Move tpf specific options...
11523         * config/s390/tpf.opt: to here. Add mmain option.
11524         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11525         * config/s390/tpf.h: Rewrite.
11526
11527 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11528
11529         * doc/tm.texi: Remove @xref{Cross-profiling}.
11530
11531 2005-07-13  Jeff Law  <law@redhat.com>
11532
11533         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
11534         expressions, test their _DECL operands for pointer equality rather
11535         than using operand_equal_p.
11536
11537 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11538
11539         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
11540         (TARGET_POSIX_IO): This.
11541         * config/darwin.h: Likewise.
11542         * config/freebsd.h: Likewise.
11543         * config/linux.h: Likewise.
11544         * config/lynx.h: Likewise.
11545         * config/netbsd.h: Likewise.
11546         * config/rs6000/linux64.h: Likewise.
11547         * config/rs6000/linux.h: Likewise.
11548         * config/s390/tpf.h: Likewise.
11549         * config/sh/embed-elf.h: Likewise.
11550         * config/sparc/linux64.h: Likewise.
11551         * config/sparc/linux.h: Likewise.
11552         * config/svr4.h: Likewise.
11553         * gcov-io.h: Likewise.
11554
11555         * doc/tm.texi: Updated.
11556
11557         * libgcov.c (create_file_directory): Defined only if
11558         TARGET_POSIX_IO is defined.
11559         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
11560         is defined.
11561
11562 2005-07-13  Jan Hubicka  <jh@suse.cz>
11563
11564         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
11565
11566 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
11567
11568         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
11569         structure as argument.
11570
11571 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
11572
11573         PR tree-optimization/21921
11574         * tree-iterator.c (tsi_link_before): Support the case when
11575         tsi_end_p (tsi) == true.
11576
11577 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11578
11579         PR tree-optimization/22442
11580         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
11581         correctly.
11582
11583 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11584
11585         PR rtl-optimization/20376
11586         * toplev.c (process_options): Enable -fweb and -frename-registers when
11587         unrolling.
11588         * doc/invoke.texi: Update the information about when -fweb and
11589         -frename-registers are enabled.
11590
11591 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11592
11593         PR tree-opt/21840
11594         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
11595         if *rhs_p is not a SSA_NAME.
11596
11597 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
11598
11599         Fix PR tree-optimization/22422
11600         * tree-ssa-structalias.c (struct variable_info): Add flag for
11601         special vars.
11602         (get_varinfo): Now a static function.
11603         (new_varinfo): init has_union and is_special_var to false.
11604         (solution_set_add): Check has_union.
11605         (do_da_constraint): Move temporary variable so it gets reset
11606         properly.
11607         Also check for special variable.
11608         (do_ds_constraint): Ditto.
11609         (do_sd_constraint): Ditto.
11610         (do_structure_copy): Check for special variable.
11611         (find_func_aliases): Ditto.
11612         (init_base_vars): Set special vars properly.
11613
11614 2005-07-13  Jan Hubicka  <jh@suse.cz>
11615
11616         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
11617         do unit-at-a-time.
11618
11619         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
11620         (get_expr_operands): Fix thinko wrt flags and subvars.
11621
11622         PR tree-optimize/22379
11623         * tree-inline.c (expand_call_inline): Do not output sorry in early
11624         inlining.
11625
11626 2005-07-12  Dale Johannesen  <dalej@apple.com>
11627
11628         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
11629
11630 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11631
11632         PR bootstrap/21704
11633         * host-linux.h: Include limits.h.
11634
11635 2005-07-12  Dale Johannesen  <dalej@apple.com>
11636
11637         * expr.c (compress_float_constant):  Add cost check.
11638         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
11639
11640 2005-07-12  Dale Johannesen  <dalej@apple.com>
11641
11642         * gcc.target/i386/compress-float-sse.c:  New.
11643         * gcc.target/i386/compress-float-sse-pic.c:  New.
11644         * gcc.target/i386/compress-float-387.c:  New.
11645         * gcc.target/i386/compress-float-387-pic.c:  New.
11646         * gcc.dg/compress-float-ppc.c:  New.
11647         * gcc.dg/compress-float-ppc-pic.c:  New.
11648
11649 2005-07-12  Eric Christopher  <echristo@redhat.com>
11650
11651         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11652         static extra parts.
11653         * config/s390/s390.md: Include tpf.md. Move tpf specific
11654         patterns...
11655         * config/s390/tpf.md: To here.
11656         * config/s390/s390.opt: Move tpf specific options...
11657         * config/s390/tpf.opt: to here. Add mmain option.
11658         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11659         * config/s390/tpf.h: Rewrite.
11660
11661 2005-07-12  Eric Christopher  <echristo@redhat.com>
11662
11663         * gcc.c (struct infile): Update comment for language.
11664         (main): Rewrite input file resetting code.
11665
11666 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11667
11668         PR tree-opt/22335
11669         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
11670         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
11671         (lookup_avail_expr): Use constant_boolean_node instead
11672         of boolean_false_node/boolean_true_node.
11673
11674 2005-07-12  Ben Elliston  <bje@au.ibm.com>
11675
11676         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
11677         and use it when printing num_edges.
11678
11679 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
11680
11681         * doc/extend.texi (Blackfin Built-in Functions): New section.
11682         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
11683         @opindex.
11684
11685 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
11686
11687         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
11688         s/cmpstrsi/cmpstrnsi
11689         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
11690         'cmpstrnsi'.
11691         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
11692         (init_optabs): Initialize cmpstrn_optab.
11693         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
11694         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
11695         * expr.c: (enum insn_code cmpstrn_optab): Declare.
11696         * config/i386/i386.md: s/cmpstr/cmpstrn
11697         * config/c4x/c4x.md: s/cmpstr/cmpstrn
11698         * doc/md.texi: Update documentation.
11699
11700 2005-07-11  Richard Henderson  <rth@redhat.com>
11701
11702         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
11703         build_va_arg_indirect_ref.
11704         (alpha_gimplify_va_arg): Likewise.
11705         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11706         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
11707         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
11708         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11709         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
11710         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
11711         Likewise.
11712         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11713
11714 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11715
11716         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
11717         * passes.c (init_optimization_passes): Add pass_empty_loop.
11718         * tree-pass.h (pass_empty_loop): Declare.
11719         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
11720         try_remove_empty_loop, remove_empty_loops): New functions.
11721         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
11722         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
11723
11724 2005-07-12  Peter Barada  <peter@the-baradas.com>
11725
11726         PR middle-end/16719
11727         PR middle-end/18421
11728         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
11729         in address registers.
11730         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
11731         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
11732         alternative of addsi3_5200.
11733
11734 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11735
11736         * config/mips/mips.md (ffs<mode>2): Remove.
11737
11738 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11739
11740         * doc/tree-ssa.texi (Cleanups): Improve description of
11741         TRY_FINALLY_EXPR.
11742         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
11743
11744 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11745
11746         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
11747         * tree.h (DECL_ARGUMENT_FLD): New macro.
11748
11749 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11750
11751         Fix PR tree-optimization/22404
11752
11753         * tree-ssa-structalias.c (create_variable_info_for): Use
11754         correct offset.
11755
11756 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
11757
11758         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
11759         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
11760         for second comparison operand.
11761         * config/bfin/predicates.md (reg_or_const_int_operand): New.
11762
11763         * config/bfin/bfin.md (define_attr "type"): Add "sync".
11764         (define_insn_reservation "alu"): Likewise.
11765         (csync, ssync): Now of type sync.
11766         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
11767         -mcsync-anomaly -mspecld-anomaly.
11768         * config/bfin/bfin.opt (mcsync): Remove.
11769         (mcsync-anomaly, mspecld-anomaly): Add.
11770         * config/bfin/bfin.c: Include "insn-codes.h".
11771         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
11772         (TARGET_DEFAULT_TARGET_FLAGS): New.
11773         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
11774
11775 2005-07-11  Steven Bosscher  <stevenb@suse.de>
11776
11777         * basic-block.h: Give the BB flags enum a name, bb_flags.
11778         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
11779         * cfgcleanup.c (enum bb_flags): Remove here.
11780         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
11781         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
11782         (update_forwarder_flag): Likewise.
11783         (thread_jump): Likewise.
11784         (try_forward_edges): Likewise.
11785         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
11786         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
11787         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
11788
11789 2005-07-11  Richard Guenther  <rguenther@suse.de>
11790
11791         * config/i386/i386.opt: New target option -msseregparm.
11792         * config/i386/i386.c (override_options): Error out for
11793         -msseregparm but no SSE support.
11794         (ix86_function_sseregparm): Check for global sseregparm.
11795         * doc/invoke.texi: Document -msseregparm.
11796
11797 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11798
11799         * config.gcc (m32r-*-linux*): Use the default extra_parts.
11800         (m32rle-*-linux*): Ditto.
11801
11802 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
11803
11804         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
11805         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
11806         bytes.
11807
11808 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11809
11810         PR middle-end/22239
11811         PR target/20126
11812         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
11813         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
11814
11815 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
11816
11817         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
11818         (varmap): Heapify varmap.
11819         (constraints): Heapify constraints.
11820         (struct constraint_graph): Heapify succs and preds.
11821         (constraint_vec_find): Update for heapification.
11822         (constraint_set_union): Ditto.
11823         (insert_into_complex): Ditto.
11824         (constraint_edge_vec_find): Ditto.
11825         (erase_graph_self_edge): Ditto.
11826         (add_graph_edge): Ditto.
11827         (get_graph_weights): Ditto.
11828         (merge_graph_nodes): Ditto.
11829         (build_constraint_graph): Ditto.
11830         (topo_visit): Ditto.
11831         (solve_graph): Ditto.
11832         (create_variable_info_for): Ditto.
11833         (init_base_vars): Ditto.
11834         (delete_points_to_sets): Free graph, varmap, and complex constraints.
11835         (condese_varmap_nodes): Free complex vector.
11836         (clear_edges_for_node): Clear succs and preds vector.
11837
11838 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11839
11840         * tree-ssa-structalias.c (update_alias_info): Change counting of
11841         references to not include vdefs.
11842
11843 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11844
11845         * tree-ssa-alias.c (free_used_part_map): Add missing free.
11846         (up_insert): Ditto.
11847
11848 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11849
11850         * pa.c (pa_commutative_p): Make PLUS commutative when
11851         TARGET_NO_SPACE_REGS is true.
11852
11853 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11854
11855         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
11856         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
11857         * tree-dfa.c (dump_subvars_for): New.
11858         (debug_subvars_for): New.
11859         (dump_variable): Show subvariables if VAR has them.
11860         * tree-flow-inline.h (get_subvar_at): New.
11861         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
11862         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
11863         Update all users.
11864         (struct subvar): Change fields offset and size to unsigned
11865         HOST_WIDE_INT.
11866         (dump_subvars_for): Declare.
11867         (debug_subvars_for): Declare.
11868         (get_subvar_at): Declare.
11869         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
11870         to unsigned HOST_WIDE_INT *.
11871         (overlap_subvar): Likewise.
11872         * tree-gimple.c (is_gimple_reg): Always return false for
11873         SFTs and memory tags.
11874         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
11875         Update all callers.
11876         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
11877         (compute_may_aliases): Call compute_points_to_sets.
11878         (collect_points_to_info_for): Remove.
11879         (compute_points_to_and_addr_escape): Remove.
11880         (delete_alias_info): Call delete_points_to_sets.
11881         (compute_flow_sensitive_aliasing): If the call to
11882         find_what_p_points_to returns false, call set_pt_anything.
11883         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
11884         (set_pt_anything): Clear pi->pt_vars.
11885         (set_pt_malloc): Remove.
11886         (merge_pointed_to_info): Remove.
11887         (add_pointed_to_expr): Remove.
11888         (add_pointed_to_var): Remove.
11889         (collect_points_to_info_r): Remove.
11890         (is_escape_site): Make extern.
11891         (create_sft): New.
11892         (create_overlap_variables_for): Call it.
11893         * tree-ssa-copy.c (merge_alias_info): Never merge
11894         flow-sensitive alias information.
11895         * tree-ssa-operands.c (get_expr_operands): Adjust variables
11896         offset and size to be unsigned HOST_WIDE_INT.
11897         (add_to_addressable_set): Rename from note_addressable.
11898         Set TREE_ADDRESSABLE as the variables are added to the set.
11899         Update all users.
11900         (add_stmt_operand): Do not try to micro-optimize unmodifiable
11901         operands into VUSEs when adding V_MAY_DEFs for members in an
11902         alias set.
11903         * tree-ssa-operands.h (add_to_addressable_set): Declare.
11904         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
11905         (struct variable_info): Add bitfield is_heap_var.
11906         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
11907         (new_var_info): Initialize is_heap_var.
11908         (get_constraint_for): Add HEAP variables to the symbol table.
11909         Mark them with is_heap_var.
11910         (update_alias_info): New.  Taken mostly from the old
11911         compute_points_to_and_addr_escape.
11912         (handle_ptr_arith): New.
11913         (find_func_aliases): Call update_alias_info.
11914         Call handle_ptr_info for tcc_binary expressions.
11915         Call mark_stmt_modified.
11916         (create_variable_info_for): If DECL has subvars, do not create
11917         variables for its subvars.  Always add all the fields.
11918         (set_uids_in_ptset): If the solution includes ANYOFFSET and
11919         SFTs, then add all the SFTs of the structure.
11920         If VI->DECL is an aggregate with subvariables, add the SFT at
11921         VI->OFFSET.
11922         (find_what_p_points_to): If VI is an artificial variable,
11923         translate to bitfields in SSA_NAME_PTR_INFO.
11924         If the solution is empty, set pi->pt_vars to NULL
11925         (init_base_vars): Create ANYOFFSET.
11926         (compute_points_to_sets): Rename from create_alias_vars.
11927         Make extern.
11928         (pass_build_pta): Remove.
11929         (delete_points_to_sets): Rename from delete_alias_vars.
11930         (pass_del_pta): Remove.
11931         * tree-ssa-structalias.h (struct alias_info): Move from
11932         tree-ssa-alias.h.
11933         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
11934         NUM_REFERENCES_SET): Likewise.
11935         (compute_points_to_sets, delete_points_to_sets): Declare.
11936
11937 2005-07-09  Richard Henderson  <rth@redhat.com>
11938
11939         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
11940         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
11941         alpha_split_lock_test_and_set_12): New functions.
11942         * config/alpha/alpha-protos.h: Update.
11943         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
11944         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
11945         * config/alpha/sync.md (I12MODE): New.
11946         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
11947         (sync_<fetchop_name><I48MODE>): Likewise.
11948         (sync_nand<I48MODE>): Likewise.
11949         (sync_old_<fetchop_name><I48MODE>): Likewise.
11950         (sync_new_<fetchop_name><I48MODE>): Likewise.
11951         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
11952         (sync_compare_and_swap<I48MODE>): Likewise.
11953         (sync_lock_test_and_set<I48MODE>): Likewise.
11954         (sync_compare_and_swap<I12MODE>): New.
11955         (sync_compare_and_swap<I12MODE>_1): New.
11956         (sync_lock_test_and_set<I12MODE>): New.
11957         (sync_lock_test_and_set<I12MODE>_1): New.
11958
11959 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11960
11961         PR 21356
11962         PR 22332
11963         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
11964
11965 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
11966
11967         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
11968         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
11969
11970 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
11971
11972         PR target/21656
11973         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
11974
11975 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
11976
11977         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
11978         memory_operand constraint.
11979         (store_conditional_<mode>): Same.
11980         (sync_compare_and_swap<mode>): Same.
11981         (sync_lock_test_and_set<mode>): Same.
11982
11983 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
11984
11985         Rewrite PIC support to more closely model actual instructions.
11986         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
11987         (cris_symbol): Remove prototypes for removed functions.
11988         (cris_pic_symbol_type_of, cris_valid_pic_const)
11989         (cris_expand_pic_call_address): Prototypes for new functions.
11990         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
11991         variable.
11992         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
11993         modifiers.
11994         <case ':'>: Add case for new punctuation character.
11995         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
11996         emitting (extra) PIC modifier.
11997         <case UNSPEC>: Do not assert for PLT.
11998         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
11999         (cris_expand_prologue, cris_expand_epilogue): Check
12000         for pic_offset_table_rtx usage instead of taking
12001         current_function_uses_pic_offset_table as the final word.
12002         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
12003         Remove flag_pic difference.
12004         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
12005         the moral equivalents of...
12006         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
12007         functions.
12008         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
12009         (cris_handle_option): Mark ARG as unused.
12010         (cris_expand_pic_call_address): New worker function for "call",
12011         "call_value".
12012         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
12013         output PIC constructs here.
12014         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
12015         as symbol-specific modifers, not whole or part of operands.
12016         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
12017         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
12018         constants and flag_pic.
12019         (CONSTANT_INDEX_P): Adjust for new functions.
12020         (enum cris_pic_symbol_type): New helper type.
12021         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
12022         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
12023         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
12024         define_constants.
12025         ("movsi"): Emit actual instructions for GOT and relative access.
12026         ("*movsi_got_load"): New pattern to set up the register holding
12027         the GOT pointer.
12028         ("*movsi_internal"): Operand 1 is not a plain general_operand.
12029         Adjust FIXME for 'S'.
12030         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
12031         Use "movs" for -fpic cases.
12032         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
12033         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
12034         ("call", "call_value"): Just call cris_expand_pic_call_address for
12035         PIC addresses.
12036         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
12037         Remove special pattern.
12038         ("*expanded_call_side", "*expanded_call_value_side"): New
12039         patterns.
12040         (gotplt-to-plt, gotplt-to-plt-side-call)
12041         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
12042         peephole2:s.
12043         * config/cris/cris/predicates.md
12044         ("cris_general_operand_or_gotless_symbol"): Remove unused
12045         predicate.
12046         ("cris_general_operand_or_symbol"): Adjust for new functions.
12047
12048 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
12049
12050         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
12051
12052 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
12053
12054         * Makefile.in (TREE_H): Add treestruct.def.
12055         (c-decl.o): Add pointer-set.h
12056         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
12057         visibility on regular DECL's.
12058         (merge_decls): Fix the copying of decl nodes of various types for
12059         the new structures.  Don't update RTL, section name, weak status,
12060         etc, on DECL's without RTL.
12061         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
12062         Don't check volatile on non-variable types.
12063         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
12064         to check whether we have seen arguments.
12065         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
12066         flag is checked before field (flag is common, field is not).
12067         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
12068         TS_DECL_COMMON could have an origin.
12069         (add_location_or_const_value_attribute): Don't check section name
12070         on non-var/function decls.
12071         (dwarf2out_var_location): Reverse order of tests.
12072         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
12073         with DECL_WRTL_CHECK.
12074         * expmed.c (make_tree): rtl is now in decl_with_rtl.
12075         * fold-const.c (fold_binary): Don't check weakness on
12076         non-var/function decls.
12077         (tree_expr_nonzero_p): Ditto.
12078         (fold_checksum_tree): Use tree_decl_extra as sizeof
12079         buffer.
12080         * ggc-page.c (extra_order_size_table): Add sizes for
12081         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
12082         tree_field_decl.
12083         * gimplify.c (gimplify_bind_expr): Only set
12084         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
12085         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
12086         without RTL.
12087         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
12088         * langhooks.h (init_ts). New langhook.
12089         * passes.c (rest_of_decl_compilation): Reverse order of tests.
12090         * print-tree.c (print_node): Update to only print fields that
12091         exist in the structures the passed decl has.
12092         * toplev.c (wrapup_global_declarations): Don't reset
12093         DECL_DEFER_OUTPUT on DECL's that don't contain it.
12094         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
12095         * tree-inline.c (remap_decl): Ditto.
12096         * tree-outof-ssa.c (create_temp): Reverse order of tests.
12097         * tree-pretty-print.c (print_declaration): Don't print
12098         DECL_REGISTER on things that don't contain it.
12099         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
12100         non-var/function decls.
12101         * tree.c (tree_contains_struct): New structure.
12102         (init_priority_for_decl): New hashtable.
12103         (tree_int_map): New structure.
12104         (tree_int_map_eq): New function.
12105         (tree_int_map_marked_p): Ditto.
12106         (tree_int_map_hash): Ditto.
12107         (tree_map): Move to tree.h.
12108         (tree_map_eq): Externalize.
12109         (tree_map_hash): Ditto.
12110         (tree_map_marked_p): Ditto.
12111         (init_ttree): Set up tree_contains_struct and call langhook.
12112         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
12113         (tree_code_size): Update for new structures.
12114         (tree_node_structure): Update for new structures.
12115         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
12116         without the field.
12117         (copy_node_stat):  Copy init priority.
12118         (build_decl_stat): Ditto for visibility.
12119         (ts_enum_names): New.
12120         (tree_contains_struct_check_failed): New function.
12121         (decl_init_priority_lookup): Ditto.
12122         (decl_init_priority_insert): Ditto.
12123         * treestruct.def: New file.
12124         * tree.h (CODE_CONTAINS_STRUCT): New macro.
12125         (CONTAINS_STRUCT_CHECK): Ditto.
12126         (tree_contains_struct_check_failed): New prototype.
12127         (DECL_CHECK): Removed.
12128         (DECL_MINIMAL_CHECK): New.
12129         (DECL_COMMON_CHECK): Ditto.
12130         (DECL_WRTL_CHECK): Ditto.
12131         (DECL_NON_COMMON_CHECK): Ditto.
12132         (DECL_WITH_VIS_CHECK): Ditto.
12133         (VAR_OR_FUNCTION_DECL_P): Ditto
12134         (struct tree_decl_minimal): New structure.
12135         (struct tree_decl_common): Ditto.
12136         (struct tree_decl_with_rtl): Ditto.
12137         (struct tree_decl_with_vis): Ditto.
12138         (struct tree_decl_non_common): Ditto.
12139         (struct tree_field_decl): Ditto.
12140         (struct tree_parm_decl): Ditto.
12141         (struct tree_var_decl): Ditto.
12142         (struct tree_function_decl): Ditto.
12143         (struct tree_const_decl): Ditto.
12144         (struct tree_result_decl): Ditto.
12145         (union tree_node): Add new structures.
12146         * var-tracking.c (track_expr_p): Reverse order of tests.
12147
12148         * doc/c-tree.texi: Add documentation on DECL node internal structure.
12149
12150 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
12151
12152         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
12153         * system.h: Poison FINALIZE_PIC.
12154         * doc/tm.texi (FINALIZE_PIC): Remove.
12155
12156 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
12157
12158         PR tree-opt/22329
12159         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
12160         to the correct type if we have a MODIFY_EXPR.
12161
12162 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
12163
12164         PR tree-optimization/22360
12165         * tree.c (upper_bound_in_type): Fix calculations for casting
12166         to a non-wider signed type and casting a signed value to a
12167         wider unsigned type.
12168         (lower_bound_in_type): Fix calculations for casting to a
12169         non-wider signed type.
12170
12171         PR tree-optimization/20139
12172         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
12173         release_defs.
12174         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
12175         fold_cond_expr_cond.
12176         * tree-ssanames.c (release_defs): Assert in_ssa_p.
12177         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
12178
12179 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
12180
12181         PR tree-opt/22356
12182         * tree-complex.c (expand_complex_libcall): Produce
12183         REALPART_EXPR/IMAGPART_EXPR with the correct type.
12184
12185 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
12186
12187         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
12188         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
12189         b" assert and inserted fastpath code for this case.
12190         (bitmap_ior): Removed "a != b" assert.
12191
12192 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
12193
12194         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
12195         (ENDFILE_SPEC): Likewise.
12196         * config/m32r/m32r.h (ASM_SPEC): Likewise.
12197
12198         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
12199         a large stack frame at epilogue.
12200
12201 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
12202
12203         * final.c: Include sdbout.h when required.
12204
12205 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
12206
12207         * config.gcc (*-*-darwin*): Only one target-specific header file
12208         for generic darwin.
12209         (powerpc-*-darwin*): Add version-specific header files.
12210         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
12211         * config.in: Regenerate.
12212         * configure: Regenerate.
12213         * gcc.c: Include xregex.h.
12214         (version_compare_spec_function): New.
12215         (spec_function): Add version-compare.
12216         (replace_outfile_spec_function): Reformat comment.
12217         (compare_version_strings): New.
12218         * config/darwin-c.c (version_as_macro): New.
12219         (builtin_define): New.
12220         (darwin_cpp_builtins): New.
12221         * config/darwin-protos.h (darwin_cpp_builtins): New.
12222         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
12223         (LIB_SPEC): Make unconditional, update comment.
12224         (TARGET_C99_FUNCTIONS): Define.
12225         * config/darwin.opt: Sort.
12226         (mmacosx-version-min=): New.
12227         * config/darwin7.h: Delete.
12228         * config/darwin8.h: Delete.
12229         * config/i386/darwin.h (): Call darwin_cpp_builtins.
12230         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
12231         (TARGET_C99_FUNCTIONS): Define.
12232         * config/rs6000/darwin7.h: New.
12233         * config/rs6000/darwin8.h: New.
12234         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
12235         (-mmacosx-version-min): Document.
12236
12237 2005-07-07  Ian Lance Taylor  <ian@airs.com>
12238
12239         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
12240
12241 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
12242
12243         PR middle-end/22239
12244         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
12245
12246 2005-07-07  Khem Raj  <kraj@mvista.com>
12247
12248         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
12249         in bytes, not words.
12250
12251 2005-07-07  Paul Brook  <paul@codesourcery.com>
12252
12253         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
12254         DEFAULT_FUNCTION_ARG_PADDING to upward.
12255
12256 2005-07-07  Richard Henderson  <rth@redhat.com>
12257
12258         * function.c (locate_and_pad_parm): Record parameter alignment in
12259         stack_alignment_needed.
12260
12261 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
12262
12263         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
12264         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
12265         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
12266         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
12267         (define_attr "type"): Add isync, sync, load_l, store_c.
12268         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
12269         Create scratch volatile MEM.
12270         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
12271         sync.
12272         (load_locked_<mode>): New.
12273         (store_conditional_<mode>): New.
12274         (sync_compare_and_swap<mode>): Replace with splitter.
12275         (sync_lock_test_and_set<mode>): Replace with splitter.
12276         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
12277         and UNSPECV_ISYNC.
12278         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
12279         is ics.  Attribute isync.
12280         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
12281         lwsync.
12282         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
12283         and UNSPECV_SYNC_OP.
12284         (emit_unlikely_jump): New.
12285         (emit_load_locked): New.
12286         (emit_store_conditional): New.
12287         (rs6000_split_compare_and_swap): New.
12288         (rs6000_split_lock_test_and_set): New.
12289         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
12290         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
12291         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
12292         rs6000_split_lock_test_and_set): Declare.
12293         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
12294         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
12295         store_c, isync, sync.
12296
12297 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
12298
12299         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
12300         filenames to gtyp-gen.h.
12301         (s-typ-gen): Use it in place of for loops.
12302
12303 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
12304
12305         * hooks.c (hook_bool_rtx_int_false): New function.
12306         * hooks.h (hook_bool_rtx_int_false): Declare.
12307         * target-def.h (TARGET_COMMUTATIVE_P): Define.
12308         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
12309         * target.h (struct gcc_target): Add commutative_p member.
12310         * targhooks.c (hook_bool_rtx_commutative_p): New function.
12311         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
12312         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
12313         (pa_commutative_p): New function.
12314         * jump.c (target.h): Include.
12315         (rtx_renumbered_equal_p): Use targetm.commutative_p.
12316         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
12317
12318 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12319
12320         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
12321         (s390_expand_setmem): New.
12322         * config/s390/s390.c: Likewise.
12323         (print_shift_count_operand): Truncate to 12 bits instead of 6.
12324         Adapt comments.
12325         * config/s390/s390.md: ("setmem<mode>"): Accept character as
12326         general_operand.  Call new function "s390_expand_setmem".
12327         ("clrmem_long", "*clrmem_long"): Rewrite to ...
12328         ("setmem_long", "*setmem_long"): ... this.
12329
12330 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12331
12332         * config/s390/s390.c: (optimization_options): Enable
12333         TARGET_MVCLE at -Os.
12334         * doc/invoke.texi: Document changes in default behaviour.
12335         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
12336
12337 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12338
12339         * expr.c: (set_storage_via_setmem): Convert opchar to mode
12340         defined by back-end.
12341
12342 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
12343
12344         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
12345         all sets in the pattern.
12346         * config/rs6000/rs6000.md (stack_protect_testsi,
12347         stack_protect_testdi): Likewise.
12348
12349 2005-07-06  Jeff Law  <law@redhat.com>
12350
12351         * tree-vrp.c (simplify_using_ranges): Kill.
12352         (vrp_finalize): Remove call to simplify_using_ranges.
12353         (simplify_stmt_using_ranges): New function extracted from
12354         simplify_using_ranges.
12355         (simplify_div_or_mod_using_ranges): Likewise.
12356         (simplify_abs_using_ranges): Likewise.
12357         (simplify_cond_using_ranges): New function.
12358         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
12359         * tree-ssa-propagate.c (substitute_and_fold): Call
12360         simplify_stmt_using_ranges if we have range information.
12361
12362 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
12363
12364         * config/ia64/ia64.c (ia64_reorg): Check optimize before
12365         ia64_flag_schedule_isns2.
12366
12367         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
12368         reading/writing general registers.
12369         (ia64_function_arg): Revert 2005-06-18 change.
12370
12371 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
12372
12373         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
12374         (legitimize_tls_address): Use gcc_unreachable instead of abort.
12375
12376 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
12377
12378         * function.c (expand_function_end): Revert part of 2005-06-27
12379         patch.  Do sjlj_emit_function_exit_after after return_label.
12380
12381 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12382
12383         * doc/install.texi (--disable-libssp): New.
12384
12385 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
12386
12387         * doc/invoke.texi: Update -fforce-mem documentation.
12388         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
12389         code for -fforce-mem.
12390         * expmed.c: (store_bit_field,store_fixed_bit_field,
12391         extract_bit_field): Ditto.
12392         * expr.c: (convert_move): Ditto.
12393         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
12394         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
12395         emit_conditional_add,expand_float,expand_fix): Ditto.
12396         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
12397         (common_handle_option): Issue warning when -fforce-mem specified.
12398
12399 2005-07-06  Paul Brook  <paul@codesourcery.com>
12400
12401         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
12402         argument is empty.
12403         * configure: Regenerate.
12404
12405 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
12406
12407         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
12408
12409 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
12410
12411         Fix PR tree-optimization/22319
12412         Fix PR tree-optimization/22140
12413         Fix PR tree-optimization/22310
12414
12415         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
12416         variable sized types.
12417         Use correct type for intermediate structure on *a = *b structure
12418         copies.
12419
12420 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12421
12422         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
12423         Remove.
12424         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
12425         (machine_function): Move typedef to...
12426         * config/rs6000/rs6000.c (machine_function): ... here.  Add
12427         varargs_save_offset field.
12428         (rs6000_stack_t): Remove varargs_size field.
12429         (setup_incoming_varargs): Allocate varargs save area using
12430         assign_stack_local, try to make it as small as possible.
12431         Save offset from virtual_stack_vars_rtx to the save area
12432         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
12433         instead of magic 8 when fp word byte size is used.
12434         (rs6000_va_start): Use cfun->machine->varargs_save_offset
12435         instead of -RS6000_VARARGS_SIZE.
12436         (rs6000_stack_info, debug_stack_info,
12437         rs6000_initial_elimination_offset): Remove all traces of
12438         varargs_size.
12439         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
12440         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
12441         RS6000_VARARGS_AREA.
12442
12443 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
12444
12445         PR tree-optimization/21963
12446         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
12447         constant_multiple_of in the same way get_computation_cost_at does.
12448
12449 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12450
12451         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
12452         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
12453         (gen_compare_reg): If sparc_compare_emitted is set, clear it
12454         and return its previous value.
12455         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
12456         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
12457         constants.
12458         (stack_protect_set, stack_protect_test): New expanders.
12459         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
12460         stack_protect_testdi): New insns.
12461         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12462         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
12463
12464 2005-07-06  Jeff Law  <law@redhat.com>
12465
12466         * tree-ssa-dce.c (cfg_altered): New global.
12467         (tree_dce_init): Initialize cfg_altered.
12468         (remove_dead_stmt): If we remove an edge in the CFG, then set
12469         CFG_ALTERED.
12470         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
12471         the dominators.
12472
12473 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12474
12475         * Makefile.in (stamp-collect-ld): Use
12476         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
12477         ./collect-ld if it already exists.
12478         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
12479         Don't remove ./nm if it already exists.
12480
12481 2005-07-05  Devang Patel  <dpatel@apple.com>
12482
12483         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
12484         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
12485         * tree-vectorizer.c (vect_loop_location): New.
12486         (vect_print_dump_info): Use vect_loop_location.
12487         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
12488         (vectorize_loops): Set vect_loop_location.
12489         * tree-vect-analyze.c (vect_analyze_offset_expr,
12490         vect_determin_vectorization_factor, vect_analyze_operations,
12491         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
12492         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
12493         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
12494         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
12495         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
12496         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
12497         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
12498         vect_analyze_loop): Adjust vect_print_dump_info API.
12499         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
12500         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
12501         vect_finish_stmt_generation, vectorizable_assignment,
12502         vectorizable_operation, vectorizable_store, vectorizable_load,
12503         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
12504         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
12505         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
12506         vect_transform_loop): Same.
12507         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
12508         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
12509         Same.
12510
12511 2005-07-05  Randolph Chung  <tausq@debian.org>
12512
12513         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
12514         * configure: Regenerate.
12515         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
12516         (pa_tls_referenced_p): Declare.
12517         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
12518         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
12519         (legitimize_tls_address): New.
12520         (hppa_legitimize_address): Handle TLS addresses.
12521         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
12522         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12523         (emit_move_sequence): Handle TLS addresses.
12524         (pa_encode_section_info): Call default handler to handle common
12525         sections.
12526         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
12527         (CONSTANT_ADDRESS_P): Reject TLS operands.
12528         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
12529         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
12530         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
12531         (UNSPEC_TLSLE): Define new constants.
12532         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
12533         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
12534         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
12535         (tie_symbolic_operand, tle_symbolic_operand): New
12536
12537 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
12538
12539         * aclocal.m4: Update macros for autoconf 2.59 style.
12540         * configure.ac: Likewise.
12541
12542 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12543
12544         * pa.c (function_value): Handle small aggregates on 32-bit targets.
12545         (function_arg): Pass small aggregates in general registers on 32-bit
12546         targets.
12547         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
12548
12549 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
12550
12551         * Makefile.in (final.o): Fix dependencies.
12552
12553 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12554
12555         PR c/22013
12556         PR c/22098
12557         * langhooks.h (struct lang_hooks): Add expr_to_decl.
12558         * langhooks.c (lhd_expr_to_decl): New.
12559         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
12560         New.
12561         (LANG_HOOKS_INITIALIZER): Update.
12562         * tree.c (recompute_tree_invarant_for_addr_expr): Call
12563         expr_to_decl langhook.
12564         * c-tree.h (c_expr_to_decl): Declare.
12565         * c-typeck.c (c_expr_to_decl): New.
12566         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
12567         specially.
12568         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
12569
12570 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12571
12572         PR c/22308
12573         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
12574         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
12575
12576 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
12577
12578         * Makefile.in: Adjust dependencies.
12579         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
12580         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
12581         * alias.c (rest_of_handle_cfg, pass_cfg): New.
12582         * bb-reorder.c (duplicate_computed_gotos): Make it static.
12583         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
12584         rest_of_compilation.
12585
12586         * bb-reorder.c (gate_duplicate_computed_gotos,
12587         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
12588         rest_of_handle_reorder_blocks, pass_reorder_blocks,
12589         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
12590         pass_partition_blocks): New.
12591         * bt-load.c (gate_handle_branch_target_load_optimize,
12592         rest_of_handle_branch_target_load_optimize,
12593         pass_branch_target_load_optimize): New.
12594         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
12595         pass_jump2): New.
12596         * cfglayout.c (pass_insn_locators_initialize): New.
12597         * cfgrtl.c (pass_free_cfg): New.
12598         * combine.c (gate_handle_combine, rest_of_handle_combine,
12599         pass_combine): New.
12600         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
12601         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
12602         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
12603         * except.c (pass_set_nothrow_function_flags,
12604         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
12605         pass_rtl_eh): New.
12606         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
12607         rest_of_handle_shorten_branches, pass_shorten_branches,
12608         rest_of_clean_state, pass_clean_state): New.
12609         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
12610         rest_of_handle_remove_death_notes, pass_remove_death_notes,
12611         rest_of_handle_life, pass_life, rest_of_handle_flow2,
12612         pass_flow2): New.
12613         * function.c (pass_instantiate_virtual_regs, pass_init_function,
12614         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
12615         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
12616         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
12617         pass_gcse): New.
12618         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
12619         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
12620         pass_rtl_ifcvt, gate_handle_if_after_combine,
12621         rest_of_handle_if_after_combine, pass_if_after_combine,
12622         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
12623         pass_if_after_reload): New.
12624         * integrate.c (pass_initial_value_sets): New.
12625         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
12626         pass_purge_lineno_notes): New.
12627         * mode-switching.c (rest_of_handle_mode_switching,
12628         pass_mode_switching): New.
12629         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
12630         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
12631         pass_loop2): New.
12632         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
12633         pass_loop_optimize): New.
12634         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
12635         pass_sms): New.
12636         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
12637         pass_gcse2): New.
12638         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
12639         pass_postreload_cse): New.
12640         * profile.c (gate_handle_profiling, pass_profiling,
12641         rest_of_handle_branch_prob, pass_branch_prob): New.
12642         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
12643         pass_split_before_regstack, gate_handle_split_before_regstack,
12644         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
12645         rest_of_handle_split_all_insns, pass_split_all_insns): New.
12646         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
12647         pass_stack_regs): New.
12648         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
12649         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
12650         pass_stack_adjustments): New.
12651         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
12652         pass_regrename): New.
12653         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
12654         pass_delay_slots, gate_handle_machine_reorg,
12655         rest_of_handle_machine_reorg, pass_machine_reorg): New.
12656         * rtl.h (extern void purge_line_number_notes): New.
12657         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
12658         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
12659         pass_sched2): New.
12660         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
12661         pass_tracer): New.
12662         * value-prof.c (gate_handle_value_profile_transformations,
12663         rest_of_handle_value_profile_transformations,
12664         pass_value_profile_transformations): New.
12665         * var-tracking.c (gate_handle_var_tracking,
12666         pass_variable_tracking): New.
12667         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
12668
12669         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
12670         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
12671         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
12672         rest_of_handle_old_regalloc, rest_of_handle_regrename,
12673         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
12674         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
12675         rest_of_handle_gcse2, rest_of_handle_regmove,
12676         rest_of_handle_tracer, rest_of_handle_if_conversion,
12677         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
12678         rest_of_handle_web, rest_of_handle_branch_prob,
12679         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
12680         rest_of_handle_jump_bypass, rest_of_handle_combine,
12681         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
12682         rest_of_handle_gcse, rest_of_handle_loop_optimize,
12683         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
12684         rest_of_handle_mode_switching, rest_of_handle_jump,
12685         rest_of_handle_eh, rest_of_handle_stack_adjustments,
12686         rest_of_handle_flow2, rest_of_handle_jump2,
12687         rest_of_handle_peephole2, rest_of_handle_postreload,
12688         rest_of_handle_shorten_branches, rest_of_clean_state,
12689         rest_of_compilation): Remove.
12690
12691         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
12692         * passes.c (dump_flags, in_gimple_form, all_passes,
12693         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12694         register_dump_files, next_pass_1, last_verified, execute_todo,
12695         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
12696         from tree-optimize.c.
12697         (init_optimization_passes): Moved from tree-optimize.c,
12698         adding the RTL optimizations.
12699         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
12700         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
12701         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12702         register_dump_files, next_pass_1, last_verified, execute_todo,
12703         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
12704         init_tree_optimization_passes, ipa_passes): Delete.
12705         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
12706         the RTL dumps.
12707         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
12708         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
12709         from tree.h.
12710         (ipa_passes): Remove.
12711         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
12712         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
12713         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
12714         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
12715         (dump_info_p, dump_flag): Moved to tree-dump.h.
12716
12717         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
12718         cgraph.c, opts.c.
12719         * passes.c (finish_optimization_passes): Use dump_begin
12720         and dump_end, TDI_end.
12721         (gate_rest_of_compilation): New.
12722         (pass_rest_of_compilation): Use it.
12723         (gate_postreload, pass_postreload): New.
12724         * toplev.c (general_init): Rename init_tree_optimization_passes.
12725         * toplev.h (init_tree_optimization_passes): Rename to
12726         init_optimizations_passes.
12727         * tree-dump.c (dump_flag): Make static.
12728         (dump_files): Remove RTL dumps.
12729         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
12730         pass_cleanup_cfg, pass_free_cfg_annotations,
12731         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
12732         pass_init_datastructures, pass_fixup_cfg): Make non-static.
12733         * tree-pretty-print.c: Include tree-pass.h.
12734         * cgraph.c: Include tree-dump.h.
12735
12736 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12737
12738         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
12739         Only fall back to saying it points to readonly memory if
12740         we can't do better.
12741
12742 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12743
12744         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
12745         * config/m32r/m32r.c (m32r_compute_frame_size,
12746         m32r_expand_prologue): Take current_function_profile into
12747         account whenever we reference
12748         current_function_uses_pic_offset_table.
12749         (m32r_finalize_pic): Remove.
12750         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
12751
12752 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
12753
12754         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
12755         instead of $<.  Don't remove ./as if it already exists.
12756
12757 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12758
12759         PR target/21723
12760         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
12761         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
12762         for complex modes when generating code for PA 1.0.
12763         (VALID_FP_MODE_P): New macro.
12764         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12765         sets for all general and floating point modes.  Align wide floating
12766         point modes to even register boundaries to comply with architectural
12767         requirements.
12768         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
12769         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
12770         (VALID_FP_MODE_P): New macro.
12771         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12772         sets for all general and floating point modes.  Align wide floating
12773         point modes to even register boundaries to comply with architectural
12774         requirements.
12775
12776 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12777
12778         * tree-dump.c (dump_files): Initialize dump number for .cgraph
12779         to 0.
12780
12781 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12782
12783         * tree-ssa-structalias.c: Don't include expr.h.
12784
12785 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12786
12787         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
12788         comments.
12789
12790 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12791
12792         Fix PR tree-optimization/22279
12793
12794         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
12795         correct operator.
12796
12797 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
12798
12799         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
12800
12801 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12802
12803         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
12804         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
12805         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
12806         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
12807         config/stormy16/stormy16.c, config/v850/v850.c,
12808         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
12809         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
12810         Avoid "." or "\n" at end of diagnostics and capital letters at
12811         start of diagnostics.
12812         * combine.c, cse.c: Don't translate dump file output.
12813         * toplev.c (print_version): Only translate output if going to
12814         stderr.
12815
12816 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12817
12818         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
12819         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
12820         typos.
12821
12822 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12823
12824         * pa.c (fix_range): Fix typo in comment.
12825
12826 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12827
12828         * tree-vrp.c (extract_range_from_assert): Replace
12829         fold (build (...)) with fold_build2.
12830
12831 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12832
12833         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
12834         gcc_gfc_char_table, init_dynamic_gfc_info): New.
12835         (format_types_orig, handle_format_attribute): Add support for
12836         format "gcc_gfc".
12837
12838 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12839
12840         * varasm.c (assemble_variable): Fix format specifier thinko.
12841
12842 2005-07-03  Ira Rosen  <irar@il.ibm.com>
12843
12844         PR tree-optimization/22029 (and 22135)
12845         * tree-pretty-print.c (dump_generic_node): Check that the node is not
12846         a phi node before calling dump_vops.
12847
12848 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12849
12850         * tree-dump.h (dump_string_field): Declare.
12851         * tree-dump.c: Use it instead of dump_string.
12852         (dump_string_field): Make non-static.
12853
12854 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
12855
12856         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
12857         up the minimal CFG stuff always when optimize > 0.  Call
12858         split_all_insns_noflow in PIC case if needed.
12859
12860 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12861             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
12862
12863         PR c++/18279
12864         * c-decl.c (c_write_global_declarations): Dump contents of
12865         external scope to.
12866         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
12867         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
12868         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
12869         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
12870         is enabled.
12871
12872 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12873
12874         * c-common.h (GCC_DIAG_STYLE): Define.
12875         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
12876         version for format checking to 4.1.
12877         * c-format.c: Include toplev.h after c-common.h.
12878         (enum format_type): Add gcc_tdiag_format_type.
12879         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
12880         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
12881         (format_types_orig): Add gcc_tdiag.
12882         (init_dynamic_diag_info): Support gcc_tdiag formats.
12883         (handle_format_attribute): Likewise.
12884         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
12885         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
12886         version for format checking to 4.1.
12887         (warning0, warning, error, pedwarn, sorry): Use
12888         ATTRIBUTE_GCC_DIAG.
12889         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
12890         (finish_aliases_1): Do not use %qE.
12891         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
12892         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
12893         Correct format bugs.
12894         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
12895         parameter to unsigned HOST_WIDE_INT.
12896         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
12897
12898 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
12899
12900         PR middle-end/21742
12901         * expr.c (write_complex_part): Use adjust_address for MEM.
12902         (read_complex_part): Same.
12903
12904 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
12905
12906         Fix PR tree-optimization/22280
12907
12908         * tree-sra.c (generate_element_init): Remove useless loop.
12909
12910 2005-07-02  Richard Henderson  <rth@redhat.com>
12911
12912         * config/alpha/alpha.c (alpha_legitimize_address): Check for
12913         TLS_MODEL_NONE.
12914         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
12915
12916 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
12917
12918         PR middle-end/14490
12919         * fold-const.c (fold_binary): Handle the return value of
12920         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
12921         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
12922
12923 2005-07-02  Jeff Law  <law@redhat.com>
12924
12925         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
12926         a eliminate type conversion which feeds an equality comparison
12927         if the original type or either operand in the comparison is a
12928         function pointer.
12929
12930 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
12931
12932         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
12933         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
12934         texts.
12935         * config/avr/avr.c: Do not use '`' as left quote.
12936         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
12937         Remove "." from end of diagnostics.  Make diagnostics start with
12938         lowercase letter.
12939
12940 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
12941             Joseph S. Myers  <joseph@codesourcery.com>
12942
12943         * toplev.c (default_tree_printer): Handle setting location with
12944         '+' flag.
12945         * c-objc.common.c (c_tree_printer): Likewise.
12946         * c-format.c (gcc_diag_flag_specs): Add '+'.
12947         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
12948         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
12949         formats.
12950         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
12951         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
12952         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
12953         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
12954         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
12955         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
12956         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
12957         format arguments where %J is used without %D.
12958
12959 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
12960
12961         * gcc.c (LINK_SSP_SPEC): Define.
12962         (link_ssp_spec): New variable.
12963         (LINK_COMMAND_SPEC): Add %(link_ssp).
12964         (static_specs): Add link_ssp_spec.
12965         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
12966         * configure: Rebuilt.
12967         * config.in: Rebuilt.
12968
12969         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12970         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12971         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12972         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12973         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
12974         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
12975         -0x7008(2) instead of reading __stack_chk_guard variable.
12976         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
12977         number.
12978         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
12979         (stack_protect_set, stack_protect_test): Use *_tls* patterns
12980         if TARGET_THREAD_SSP_OFFSET is defined.
12981         (stack_tls_protect_set_si, stack_tls_protect_set_di,
12982         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
12983
12984         Revert:
12985         2005-06-27  Richard Henderson  <rth@redhat.com>
12986         * libgcc-std.ver (GCC_4.1.0): New.
12987         * libgcc.h (__stack_chk_guard): Declare.
12988         (__stack_chk_fail, __stack_chk_fail_local): Declare.
12989         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
12990         * mklibgcc.in (lib2funcs): Add them.
12991
12992 2005-07-01  Richard Henderson  <rth@redhat.com>
12993
12994         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
12995         void * before struct sigcontext *.
12996         (x86_fallback_frame_state): Likewise.
12997
12998 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
12999
13000         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
13001
13002 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
13003
13004         PR tree-opt/22269
13005         * tree-ssa-reassoc.c (should_transpose): Fix which operand
13006         we check for SSA_NAME for.
13007
13008 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
13009
13010         Fix PR tree-optimization/22071
13011
13012         * tree-ssa-structalias.c (offset_overlaps_with_access): New
13013         function.
13014         (get_constraint_for_component_ref): Use it.
13015
13016 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
13017
13018         PR other/22264
13019         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
13020         print out the last new line.
13021
13022 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
13023
13024         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
13025         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
13026         * config/cris/cris.c (cris_conditional_register_usage): Adjust
13027         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
13028         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
13029         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
13030         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
13031         (enum reg_class): New member CC0_REGS.
13032         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
13033         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
13034         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
13035         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
13036         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
13037         Adjust for register now described.
13038
13039 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
13040
13041         PR target/22262
13042         * config/i386/i386.md (stack_protect_test_si,
13043         stack_protect_test_di): Add earlyclobber for scratch 3.
13044         * config/rs6000/rs6000.md (stack_protect_testsi,
13045         stack_protect_testdi): Add earlyclobber for scratch 3,
13046         remove earlyclobber from scratch 4.
13047
13048 Older entries for 2005 can be found in ChangeLog-2005.