OSDN Git Service

* config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
2             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3
4         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
5         gcc_assert().
6         (rev_cond_name) Likewise.
7         (vax_float_literal) Likewise.
8         * config/vax/vax.md: Likewise.
9
10 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11
12         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
13         registers and use them (specifically the stack pointer).
14         * config/vax/vax.h: Use above defines right here.
15
16         * config/vax/vax.c: (override_options) Remove 'register' keyword.
17         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
18         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
19         whitespace.
20         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
21         mostly removal of trailing spaces...
22         * config/vax/vax-modes.def: Remove trailing whitespace.
23
24         * config/vax/elf.h: Update whitespace.
25
26 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
27
28         Revert
29         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
30         * fold-const.c (fold_indirect_ref_1): Avoid removing
31         NOP_EXPRs with type qualifiers like const.
32
33 2005-05-14  Jan Hubicka  <jh@suse.cz>
34
35         Patch by Richard Henderson:
36         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
37         Handle RESX expressions properly.
38
39         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
40         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
41         (remove_stmt_from_eh_region_fn): Likewise.
42
43         * tree-cfg.c (execute_warn_function_return): Break out noreturn
44         warning too..
45         (execute_warn_function_noreturn): ... here.
46         (pass_warn_function_noreturn): New pass.
47         * tree-pass.h (pass_warn_function_noreturn): Declare
48         * tree-optimize.c (init_tree_optimization_passes): Move return
49         warnings early and add noreturn warnings at place of previous
50         return warnings.
51
52 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
53
54         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
55         root_var_init, type_var_init): Use VEC instead of VARRAY.
56         * tree-ssa-live.h (tree_partition_associator_d): Change the
57         type of trees to VEC(tree,heap)*.
58         (tpa_tree): Use VEC instead of VARRAY.
59
60 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
61
62         * fold-const.c (div_if_zero_remainder): New function.
63         (try_move_mult_to_index): Use it.
64
65 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
66
67         * tree-eh.c (leh_tf_state): Change the type of dest_array to
68         VEC(tree,heap)*.
69         (maybe_record_in_goto_queue, lower_try_finally_onedest,
70         lower_try_finally_copy, lower_try_finally_switch,
71         lower_try_finally): Use VEC instead of VARRAY.
72
73 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
74
75         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
76         comment regarding defined register classes.
77         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
78
79 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
80
81         * tree-optimize.c (init_tree_optimization_passes): Move
82         pass_merge_phi before the first pass_dominator.
83
84 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
85
86         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
87         unconditional.
88
89 2005-05-13  Josh Conner  <jconner@apple.com>
90
91         * config/arm/arm.c (arm_size_return_regs): New.
92         (thumb_unexpanded_epilogue): replace in-line calculation
93         of return registers with call to arm_size_return_regs.
94         (use_return_insn): Include test of which registers are
95         being used to hold return values, to accommodate
96         vector return values.
97
98 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
99
100         * config/rs6000/sysv4.opt (mlittle): Handle.
101
102         * config/rs6000/rs6000.c (rs6000_handle_option): Set
103         target_flags_explicit when appropriate.
104
105 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
106
107         PR middle-end/20714:
108         * optabs.c (no_conflict_data): New struct.
109         (no_conflict_move_test): New function.
110         (emit_no_conflict_block): Use it.
111
112 2005-05-13  Adam Nemet  <anemet@lnxw.com>
113
114         * doc/invoke.texi (Debugging Options): Option
115         -fdump-translation-unit only works with C++ now.
116
117 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
118
119         Replace calls to abort in CRIS port.
120         * config/cris/cris.h (CRIS_ASSERT): New macro.
121         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
122         internal_error instead of abort.
123         ("movsi"): Ditto.  Unquote preparation statement section.
124         ("call", "call_value"): Ditto, but use gcc_assert where
125         appropriate.  Tweak comments.
126         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
127         CRIS_ASSERT.
128         (cris_op_str): Call internal_error, not abort.
129         (cris_print_operand): Tweak "abort" reference to "die" in comment.
130         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
131         (cris_notice_update_cc): Call internal_error, not abort.
132         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
133         (cris_emit_movem_store, cris_asm_output_symbol_ref)
134         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
135         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
136         ENABLE_CHECKING-guarded abort call.
137         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
138         Use internal_error at end of test-chain.
139
140 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
141
142         PR rtl-optimization/20769:
143         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
144         pattern emitted by expand_nl_goto_receiver.
145
146         PR middle-end/20793:
147         * integrate.c (allocate_initial_values): Update register liveness
148         information.
149
150 2005-05-13  Josh Conner  <jconner@apple.com>
151
152         * arm.c (arm_return_in_memory): Add handling for vector return types.
153
154 2005-05-13  David Ung  <davidu@mips.com>
155
156         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
157         name.
158         * config/mips/mips.c: Add 4km alias.
159         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
160         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
161         description.
162
163 2005-05-13  Jan Hubicka  <jh@suse.cz>
164
165         * c-decl.c (finish_function): Suppress "control reaches end of
166         non-void function" when "no return statement in function
167         returning non-void" is issued.
168
169         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
170         * tree-optimize.c (pass_gimple): Kill.
171         (init_tree_optimization_passes): Kill pass_gimple.
172         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
173         * tree-dump.c (dump_files): Rename .generic to .gimple.*
174
175 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
176
177         PR rtl-optimization/20756:
178         * basic-block.h (PROP_DEAD_INSN): Define.
179         * flow.c (propagate_one_insn): Set during mark_set_regs call
180         for a dead insn.
181         (mark_set_1): Emit a clobber when we are about to delete a dead insn
182         that kills a live register.
183
184 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
185
186         * config/s390/s390.md: ("DBL"): New mode attribute.
187         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
188         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
189         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
190
191 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
192
193         * c-format.c (check_format_arg): Handle string literals of
194         the form &"string"[offset].
195
196         * g++.dg/warn/format4.C: New testcase.
197
198 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
199
200         * config/mips/3000.md, config/mips/4000.md,
201         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
202         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
203         config/mips/generic.md, config/pdp11/pdp11.md,
204         config/sh/crt1.asm, config/sh/lib1funcs.asm,
205         config/sh/sh-modes.def, config/sh/sh-protos.h,
206         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
207
208 2005-05-13  Richard Henderson  <rth@redhat.com>
209
210         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
211         addition to move unless dest is a register.  Do not skip 
212         instantiation in dest on addition simplification.
213
214 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
215
216         * config/cris/cris.c (cris_print_operand) <case 'H'; case
217         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
218         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
219
220 2005-05-13  Jan Hubicka  <jh@suse.cz>
221
222         * basic-block.h (FOR_ALL_BB_FN): New macro.
223         (init_flow): Initialize cfg structure.
224         * function.c (allocate_struct_function): Do not initialize cfg structure.
225         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
226         (build_tree_cfg): ... here.
227         * tree-flow.h (init_empty_tree_cfg): Declare.
228
229 2005-05-12  Steven Bosscher <stevenb@suse.de>
230
231         Fix PR tree-optimization/21520
232         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
233         to attempt to fold constants.
234
235 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
236
237         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
238         only when TARGET_ADJUST_UNROLL_MAX is defined.
239         (general_movsrc_operand): Use the C style comment.
240         (ua_offset): Use prototype.
241
242 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
243
244         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
245         (struct hmr_data, hoist_memory_reference, memref_del,
246         struct fmrv_data): Removed.
247         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
248         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
249         list.
250         (find_more_ref_vops): Traverse the list of memory references.
251         (determine_lsm_loop): Work with the list of memory references instead
252         of traversing the hashtable.
253
254 2005-05-12  Steven Bosscher  <stevenb@suse.de>
255             Stuart Hastings <stuart@apple.com>
256             Jan Hubicka  <jh@suse.cz>
257             
258         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
259         duplicate_eh_regions): New functions, based on old
260         implementation removed with RTL inliner.
261         (reachable_next_level): Modify behaviour pre-inline.
262         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
263         Declare.
264         * function.h (struct function): Add after_inlining flag.
265         * tree-optimize.c (tree_rest_of_compilation): Set it.
266         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
267         when needed.
268         * tree-cfg.c (label_to_block_fn): Deal with cases where
269         label was never insterted into code.
270
271 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
272
273         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
274
275 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
276
277         Fix PR tree-optimization/21532
278         * tree-ssa-pre.c (create_expression_by_pieces): stmt
279         needs to go onto the inserted_exprs list.
280
281 2005-05-12  Ian Lance Taylor  <ian@airs.com>
282
283         * c-common.h (statement_code_p): Don't declare.
284         (STATEMENT_CODE_P): Don't define.
285         (INIT_STATEMENT_CODES): Don't define.
286         * c-common.c (statement_code_p): Don't define.
287
288 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
289
290         * config/sparc/sparc.h: Remove dead code.
291         * config/sparc/sparc.c (sparc_compute_frame_size): Use
292         FIRST_PARM_OFFSET for the size of the register window area.
293         (emit_save_regs): Rename into emit_save_or_restore_regs.
294         Add 'action' parameter.  Use 4095 as upper bound for the offset.
295         Pass 'action' to save_or_restore_regs.
296         (emit_restore_regs): Delete.
297         (sparc_expand_prologue): Call emit_save_or_restore_regs.
298         (sparc_expand_epilogue): Likewise.
299         * config/sparc/sparc.md (mode macro P): Move.
300         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
301         (mov<V32:mode> expander): Move to the top of the V32 section.
302         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
303         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
304         (sibcall_epilogue): Move.
305
306 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
307
308         PR target/21501
309         * arm.c (arm_gen_constant): Sign-extend intermediate values when
310         synthesizing a constant of the difference of two immediates.
311
312 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
313
314         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
315         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
316         the alternatives using integer registers into the appropriate
317         primitives.
318
319 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
320
321         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
322         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
323         * bitmap.h: Fixed comments.
324
325 2005-05-11  Richard Henderson  <rth@redhat.com>
326
327         PR target/21412
328         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
329         (ia64_cannot_force_const_mem): New.
330         (tls_symbolic_operand_type): New.
331         (ia64_legitimate_constant_p): New.
332         (ia64_expand_load_address): Return true on success.  Improve
333         checks for when we should not split.
334         (ia64_expand_tls_address): New addend operand.  Distribute it
335         as appropriate to the tls_kind.  Delay referencing gp.
336         (ia64_expand_move): Split symbolic addend as necessary.  Handle
337         tls symbols with addends.
338         * config/ia64/ia64-protos.h: Update.
339         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
340         p0, f0, f1, and r13.
341         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
342         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
343         (symbolic_operand splitter): Pass everything through
344         ia64_expand_load_address and FAIL or DONE as appropriate.
345         (load_fptr): Only accept after reload.
346         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
347         load_symptr_low, load_ltoff_dtpmod,
348         (load_dtpmod): New.
349         (load_dtprel): Only accept tls symbols.
350         (load_dtprel64, load_dtprel22): Likewise.
351         (load_tprel, load_tprel64, load_tprel22): Likewise.
352         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
353         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
354         (add_dtprel14, add_dtprel22): Likewise.
355         (add_tprel, add_tprel14, add_tprel22): Likewise.
356         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
357         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
358         (got_symbolic_operand): Check CONST offsets.
359         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
360         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
361         (move_operand): Don't handle tls here.  Check CONST offsets.
362
363 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
364
365         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
366         Remove hilo_operand check.
367         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
368         * config/mips/predicates.md (hilo_operand): Delete.
369
370 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
371
372         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
373
374 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
375
376         PR tree-optimizer/18472
377         * tree-if-conv.c (tree_if_convert_stmt,
378         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
379
380 2005-05-11  Jan Hubicka  <jh@suse.cz>
381
382         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
383         (GTFILES): add except.h.
384         * except.c (eh_status): Add throw_stmt_table.
385         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
386         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
387         lookup_stmt_eh_region_fn): Declare.
388         (throw_stmt_node): New structure.
389         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
390         * gengtype.c (open_base_files): Add except.h to inlines.
391         * tree-eh.c (throw_stmt_node): Kill.
392         (record_stmt_eh_region): Update.
393         (add_stmt_to_eh_region_fn): Break out from ...
394         (add_stmt_to_eh_region): ... here.
395         (remove_stmt_from_eh_region_fn): Break out from ...
396         (remove_stmt_from_eh_region): ... here.
397         (lookup_stmt_eh_region_fn): Break out from ...
398         (lookup_stmt_eh_region): ... here.
399         (honor_protect_cleanup_actions): Use build_resx.
400         (lower_try_finally_onedest): Likewise.
401         (lower_try_finally_copy): Likewise.
402         (lower_try_finally_switch): Likewise.
403         (lower_eh_constructs): Update eh table construction.
404         * tree.c (build_resx): New.
405         * tree.h (build_resx): Declare.
406
407 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
408
409         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
410         is needed.
411
412 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
413
414         * fold-const.c, libgcov.c: Fix comment typos.
415
416         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
417         redundant code.
418
419 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
420
421         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
422         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
423         default definition.
424         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
425
426 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
427
428         PR bootstrap/21481
429         * crtstuff.c: Include auto-host.h again, for now.
430
431 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
432
433         * config/mips/24k.md: Remove trailing whitespace.
434
435 2005-05-11  David Ung  <davidu@mips.com>
436
437         * config/mips/mips.md (type): Add imul3.
438         (length, hazard, may_clobber_hilo): Check for imul3.
439         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
440         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
441         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
442         for a 3 operand mul and its bypasses.
443         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
444         * config/mips/4000.md (r4k_imul): Likewise.
445         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
446         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
447         (vr4130_muldi): Likewise.
448         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
449         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
450         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
451         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
452         (ir_vr54_imadd_si): Likewise.
453         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
454         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
455         (rm7_impy_di): Likewise.
456         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
457         * config/mips/generic.md (generic_imul): Likewise.
458         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
459         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
460
461 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
462
463         PR middle-end/20371:
464         * tree.h (record_layout_info_s): New member prev_packed.
465         * stor-layout.c (update_alignment_for_field): Fix comment about
466         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
467         we start it properly aligned.
468         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
469         to update_alignment_for_field, and recompute it afterwards using
470         the alignment of the record.
471         When a packed bitfield precedes an MS bitfield, don't add padding
472         at the end of the packed bitfield on behalf of the base type of
473         the packed bit field.
474         Don't adjust rli->bitpos at the end
475         of an MS bitfield run if we already adjusted bitpos/offset for an
476         alignment as large or larger than the bitfield type size.
477         Take possible record alignment > BIGGEST_ALIGNMENT into account
478         when calculating actual_align.
479         Only put packed buit fields into rli->prev_field if they end up
480         suitably aligned.
481         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
482         Update rli->remaining_in_alignment when we have already started a
483         run of bit fields and we process a packed bit field.
484
485 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
486
487         * tree-data-ref.c (find_data_references_in_loop): Give up when
488         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
489         may embed arbitrary side effects.
490         Remove the assumption that GIMPLE form contains a single array
491         access per statement.
492         When the statement contains virtual operands, fail if it is not
493         a MODIFY_EXPR or a CALL_EXPR.
494         Return after the dont know node is inserted.
495
496 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
497
498         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
499
500 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
501
502         PR middle-end/19807
503         PR tree-optimization/19639
504         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
505         and generic summands for char* as s * delta, too, folding &a[i]
506         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
507         for comparison of steps.  Convert types for index addition.
508         (fold_binary): Adjust the callers to always dispatch to
509         try_move_mult_to_index.
510         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
511         expr with non-gimple ARRAY_REF offset.
512
513 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
514
515         * fold-const.c (fold_indirect_ref_1): Avoid removing
516         NOP_EXPRs with type qualifiers like const.
517
518 2005-05-11  Richard Henderson  <rth@redhat.com>
519
520         PR c/21502
521         * c-decl.c (finish_decl): Propagate the completed array type of
522         a global variable into the binding.
523
524 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
525
526         * Makefile.in (gtype-desc.o, build/genautomata.o)
527         (build/varray.o): Depend on $(VARRAY_H).
528
529 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
530
531         * tree-optimize.c (init_tree_optimization_passes): Re-organize
532         optimization passes to do an initial batch of scalar cleanups.
533
534 2005-05-10  Ian Lance Taylor  <ian@airs.com>
535
536         * read-rtl.c (struct macro_traverse_data): Define.
537         (map_attr_string): New static function, broken out of
538         apply_macro_to_string.
539         (mode_attr_index, apply_mode_maps): New static functions.
540         (apply_macro_to_string): Call map_attr_string.
541         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
542         all callers.
543         (apply_macro_traverse): Expect data to point to a struct
544         macro_traverse_data.
545         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
546         to pass data through htab_traverse.
547         (read_rtx_1): Add mode_maps parameter.  Change all callers.
548         Handle mode names which are attribute strings.
549         * doc/md.texi (Substitutions): Rename from String Substitutions.
550         Change references.  Document using attributes as modes.
551
552 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
553
554         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
555         * tree-optimize.c (init_tree_optimization_passes) Swap
556         pass_ch and pass_profile.
557         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
558         here.  Remove rewrite_into_loop_closed_ssa call.
559
560 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
561
562         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
563         function.
564         (legitimate_reload_constant_p): Add check for const double zero.
565         * config/s390/s390.md: Add comment for constraint letter 'G'.
566         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
567         attributes for new case.
568         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
569         s390_const_double_ok_for_constraint_p.
570         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
571         Add prototype.
572
573 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
574
575         PR tree-optimization/21170
576         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
577         rewrite_ssa_into_ssa in comments with update_ssa.
578
579 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
580
581         * tree-ssa-loop-im.c: Include hashtab.h.
582         (struct mem_ref_loc): New.
583         (struct mem_ref): Describe the set of references with the same
584         shape.
585         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
586         maybe_queue_var, fem_single_reachable_address,
587         for_each_memref, single_reachable_address,
588         is_call_clobbered_ref, determine_lsm_reg): Removed.
589         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
590         hoist_memory_reference, memref_hash, memref_eq, memref_del,
591         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
592         New functions.
593         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
594         (determine_lsm_loop): Rewritten.
595         (determine_lsm): Do not set stmt uids.
596
597 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
598
599         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
600         letters.
601
602 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
603
604         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
605         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
606         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
607
608 2005-05-10  Jeff Law  <law@redhat.com>
609
610         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
611         thread_across_edge for any abnormal edges.
612
613 2005-05-10  Richard Henderson  <rth@redhat.com>
614
615         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
616         * config/ia64/ia64-protos.h: Declare it.
617         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
618         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
619         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
620         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
621         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
622         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
623         extend result; use release semantics.
624         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
625         (sync_val_compare_and_swap_<IMODE>): Update to match.
626
627 2005-05-10  Richard Henderson  <rth@redhat.com>
628
629         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
630         before comparing it for success.
631
632 2005-05-10  Richard Henderson  <rth@redhat.com>
633
634         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
635         no return value pattern.
636
637 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
638             H.J. Lu  <hongjiu.lu@intel.com>
639
640         * libgcov.c (create_file_directory): New function. Create
641         directory for the given file name.
642         (gcov_max_filename): New static var. Keeps size of the longest
643         file name.
644         (gcov_exit): Always try to create directory for output
645         file. Relocate each filename basing on environment vars.
646         (__gcov_init): Remember the longest file name.
647         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
648         * doc/gcov.texi (Cross-profiling): New node documenting
649         cross-profiling management.
650         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
651
652 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
653
654         * config/sparc/sparc.c (mem_min_alignment): Do not rely
655         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
656
657 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
658
659         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
660         case code to avoid one move instruction.
661         (__umodsi3, __modsi3): Merge duplicated code sequences.
662
663 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
664
665         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
666         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
667         * doc/invoke.texi: Fix typos.
668
669         * tree-data-ref.c (analyze_array_indexes, analyze_array,
670         init_data_ref, access_functions_are_affine_or_constant_p,
671         free_data_refs): Use VEC instead of VARRAY.
672         * tree-data-ref.h (data_reference): Change the type of
673         access_fns to VEC(tree,gc)*.
674         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
675
676 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
677
678         PR c/17913
679         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
680         * fold-const.c (fold): Expand the condition of reducing cond_expr.
681         (contains_label_1, contains_label_p): New functions for checking
682         labels in a sub-tree.
683
684 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
685
686         PR c/21342
687         * c-decl.c (pushdecl): When there is a declaration in the current
688         scope and the declarations are external linkage, check for
689         compatibility with the type in the external scope and update the
690         type in the external scope with the composite type information.
691         Do not form a composite type of the new type and the visible type
692         if they are incompatible.
693
694 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
695
696         * crtstuff.c: Revert part of 2005-05-08 Change.
697         (IN_LIBGCC2): Define.
698
699 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
700
701         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
702         remove redundant test.
703         (fp_mov_p): Accept 0.
704         (fp_high_losum_p): Remove redundant test.
705         * config/sparc/predicates.md (const_high_operand): Explicitly test
706         (not small_int_operand).
707         (fp_const_high_losum_operand): New.
708         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
709         (movdi_insn_sp32_v9): Use canonical predicates.
710         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
711         (movdi_insn_sp64_novis): Delete.
712         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
713         (movsf_insn_novis): Delete.
714         (movsf_insn_vis): Rename into movsf_insn.
715         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
716         (movsf_lo_sum): Use fp_const_high_losum_operand.
717         (movsf_high): Likewise.
718         (movsf_high_losum splitter): Likewise.
719         (mov<V32:mode> expander): Use register_or_zero_operand.
720         (mov<V64:mode> expander): Likewise.
721         (movdf_insn_sp32): Use register_or_zero_operand.
722         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
723         Rename into movdf_insn_sp32_no_fpu.
724         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
725         Rename into movdf_insn_sp32_v9_no_fpu.
726         (movdf_insn_v9only_novis): Delete.
727         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
728         (movdf_insn_sp64_novis): Delete.
729         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
730         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
731         Rename into movdf_insn_sp64_no_fpu.
732         (movtf expander): Use register_or_zero_operand.
733         (movtf_insn_sp32): Delete.
734         (movtf_insn_vis_sp32): Use register_or_zero_operand.
735         Rename into movtf_insn_sp32.
736         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
737         Rename into movtf_insn_sp32_no_fpu.
738         (movtf_insn_hq_sp64): Delete.
739         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
740         Rename into movtf_insn_sp64_hq.
741         (movtf_insn_sp64): Delete.
742         (movtf_insn_vis_sp64): Use register_or_zero_operand.
743         Rename into movtf_insn_sp64.
744         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
745         Rename into movtf_insn_sp64_no_fpu.
746
747 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
748
749         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
750         gcc_assert and gcc_unreachable as appropriate.
751         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
752         xstormy16_output_cbranch_si, xstormy16_split_move,
753         xstormy16_initial_elimination_offset,
754         xstormy16_encode_section_info, xstormy16_print_operand_address,
755         xstormy16_expand_call, xstormy16_expand_arith,
756         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
757
758 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
759
760         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
761         const_copies to VEC(tree,heap)*.
762         (new_elim_graph, delete_elim_graph, elim_graph_size,
763         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
764         instead of VARRAY.
765
766 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
767
768         PR other/21052
769         * doc/extend.texi (Type Attributes): Correct example syntax.
770
771 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
772
773         PR c/21160
774         * doc/invoke.texi (-Wuninitialized): Update documentation.
775
776 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
777
778         * arm.c (const_ok_for_arm): Use a faster algorithm.
779
780 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
781
782         PR target/21477
783         * config/rs6000/rs6000.md (add_op2): New.
784         (add<mode>3): Use it.
785
786 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
787
788         * arm.c (arm_gen_constant): Add new heuristic for generating
789         constant integers that can be expressed as the difference of two
790         valid immediates.
791
792 2005-05-09  Roger Sayle  <roger@eyesopen.com>
793
794         * c-tree.h (parser_build_unary_op): New prototype.
795         * c-typeck.c (parser_build_unary_op): New function to construct
796         a unary operation in the C parser.
797         * c-parser.c (c_parser_unary_expression):  Use the new function
798         parser_build_unary_op when appropriate.
799
800 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
801
802         PR 18655
803         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
804         before outputting DWARF_FRAME_RETURN_COLUMN.
805
806 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
807
808         * config/s390/s390.c: (s390_branch_condition_mask,
809         s390_branch_condition_mnemonic, s390_extra_constraint_str,
810         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
811         legitimize_pic_address, s390_emit_tls_call_insn,
812         legitimize_tls_address, legitimize_tls_address,
813         s390_expand_addcc, print_shift_count_operand, print_operand,
814         addr_generation_dependency_p, annotate_constant_pool_refs,
815         s390_split_branches, find_constant_pool_ref,
816         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
817         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
818         s390_output_pool_entry, s390_function_value,
819         s390_call_saved_register_used, s390_emit_call): Replace
820         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
821         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
822         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
823         get_some_local_dynamic_name, s390_function_arg_size,
824         s390_function_arg_advance, s390_function_arg,
825         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
826         default case by gcc_unreachable.
827         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
828         conditional abort by gcc_assert.
829         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
830         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
831
832 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
833
834         * config/s390/s390.c: (s390_decompose_address,
835         tls_symbolic_operand, legitimate_pic_operand_p,
836         legitimate_constant_p, legitimate_reload_constant_p,
837         s390_expand_plus_operand, legitimate_address_p,
838         legitimate_la_operand_p, ): Remove 'register' from signature.
839         (symbolic_reference_mentioned_p,
840         tls_symbolic_reference_mentioned_p): Remove 'register' from local
841         variable declarations.
842         (legitimize_address): Remove 'register' from
843         signature and local variable declarations.
844
845 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
846
847         * config/s390/s390-protos.h: (s390_match_ccmode,
848         s390_match_ccmode_set, reg_used_in_mem_p,
849         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
850         legitimate_la_operand_p, preferred_la_operand_p,
851         s390_short_displacement, addr_generation_dependency_p,
852         legitimate_reload_constant_p, legitimate_address_p): Change return type
853         into 'bool'.
854         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
855         * config/s390/s390.c: (s390_match_ccmode,
856         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
857         legitimate_reload_constant_p): Change return type into 'bool'.
858         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
859         Likewise.  Additionally adapted comment.
860         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
861         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
862         (s390_decompose_address): Change the type of the internal flags
863         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
864         (struct s390_address): Change type of "pointer" into bool.
865         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
866         Adapt calls for 's390_tm_ccmode' to the new signature.
867
868 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
869
870         * config/s390/s390.c: (s390_match_ccmode_set,
871         s390_branch_condition_mnemonic, s390_short_displacement,
872         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
873         print_shift_count_operand, get_some_local_dynamic_name,
874         get_some_local_dynamic_name_1, reg_used_in_mem_p,
875         addr_generation_dependency_p, s390_split_branches,
876         annotate_constant_pool_refs, find_constant_pool_ref,
877         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
878         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
879         s390_register_info, s390_frame_info, s390_init_frame_layout,
880         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
881         restore_gprs, s390_function_arg_size, s390_function_arg_float,
882         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
883         s390_encode_section_info, s390_cannot_force_const_mem,
884         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
885         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
886         s390_adjust_priority, s390_issue_rate,
887         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
888         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
889         s390_build_builtin_va_list, s390_gimplify_va_arg,
890         s390_function_ok_for_sibcall, s390_call_saved_register_used,
891         s390_pass_by_reference, s390_fixed_condition_code_regs,
892         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
893         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
894         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
895         s390_add_pool_insn, s390_find_pool, s390_add_constant,
896         s390_find_constant, s390_add_execute, s390_find_execute,
897         s390_execute_label, s390_execute_target, s390_dump_pool,
898         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
899         Move target macro definitions to the end of the file.  Move several
900         functions within the file to assure correct compiling.
901
902 2005-05-09  Steven Bosscher  <stevenb@suse.de>
903
904         * calls.c (purge_reg_equiv_notes): Remove, fold into...
905         (fixup_tail_calls): ...here.  Only look at insns between the
906         start of the function and the FUNCTION_BEG insn note.
907
908         * gcse.c (one_cprop_pass): Fix typos in dumps.
909
910         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
911
912 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
913
914         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
915         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
916         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
917         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
918         CC_REGNUM)'.
919         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
920         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
921         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
922         REG_SC)'.
923
924 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
925
926         * config/s390/s390.md: ("gf") New mode attribute.
927         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
928         "fixuns_truncsfsi2"): Merge.
929         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
930         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
931         "fix_truncsfsi2_ieee"): Merge.
932
933 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
934
935         * config/s390/s390.md: ("FPR") New mode macro.
936         ("de", "dee"): New mode attributes.
937         ("cmpdf", "cmpsf"): Merge.
938         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
939         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
940         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
941         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
942         ("floatdidf2", "floatdisf2"): Merge.
943         ("adddf3", "addsf3"): Merge.
944         ("*adddf3", "*addsf3"): Merge.
945         ("*adddf3_cc", "*addsf3_cc"): Merge.
946         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
947         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
948         ("subdf3", "subsf3"): Merge.
949         ("*subdf3", "*subsf3"): Merge.
950         ("*subdf3_cc", "*subsf3_cc"): Merge.
951         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
952         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
953         ("muldf3", "mulsf3"): Merge.
954         ("*muldf3", "*mulsf3" "): Merge.
955         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
956         ("*fmadddf", "*fmaddsf"): Merge.
957         ("*fmsubdf", "*fmsubsf"): Merge.
958         ("divdf3", "divsf3"): Merge.
959         ("*divdf3", "*divsf3"): Merge.
960         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
961         ("negdf2", "negsf2"): Merge.
962         ("*negdf2_cc", "*negsf2_cc"): Merge.
963         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
964         ("*negdf2", "*negsf2"): Merge.
965         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
966         ("absdf2", "abssf2"): Merge.
967         ("*absdf2_cc", "*abssf2_cc"): Merge.
968         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
969         ("*absdf2", "*abssf2"): Merge.
970         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
971         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
972         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
973         ("*negabsdf2", "*negabssf2"): Merge.
974         ("sqrtdf2", "sqrtsf2"): Merge.
975
976 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
977
978         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
979         attribute names.
980         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
981         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
982         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
983         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
984         attribute names.
985         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
986         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
987         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
988         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
989         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
990         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
991         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
992         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
993         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
994         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
995         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
996         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
997         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
998         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
999         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1000         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1001         'type' value.
1002         ("*divsf3"): Additionally rename second pattern to
1003         "*divsf3_ibm".
1004         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1005         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1006         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1007         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1008         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1009         'type values' and rename 'type' value.
1010         ("*addsf3"): Additionally rename second pattern to
1011         "*addsf3_ibm".
1012
1013 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1014
1015         * config/s390/s390.md: ("SHIFT"): New mode macro.
1016         ("lr", "shift"): New mode attributes.
1017         ("ashldi3", "lshrdi3"): Merge.
1018         ("*ashldi3_31", "*lshrdi3"_31): Merge.
1019         ("*ashldi3_64", "*lshrdi3"_64): Merge.
1020         ("ashlsi3", "lshrsi3"): Merge.
1021
1022 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1023
1024         * config/s390/s390.md: ("DSI", "SCOND"): New mode
1025         macros.
1026         ("E", "g"): New mode attributes.
1027         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1028         ("*adddi3_alc", "*addsi3_alc"): Merge.
1029         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1030         ("*subdi3_slb", "*subsi3_slb"): Merge.
1031         ("adddicc", "addsicc"): Merge.
1032         ("*sconddi", "*scondsi"): Merge.
1033         ("*sconddi_neg", "*scondsi_neg"): Merge.
1034         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1035         ("negdi2", "negsi2"): Extract expander pattern from
1036         "negsi2" and merge with "negdi2".
1037         ("*negdi2"): Merge with instruction pattern of "negsi2".
1038         ("*negdi2_cc", "*negsi2_cc"): Merge.
1039         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1040         ("rotldi3", "rotlsi3"): Merge.
1041
1042 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1043
1044         * config/s390/s390.md: ("hc"): New mode attribute.
1045         ("extendhidi2", "extendqidi2"): Merge.
1046         ("*extendhidi2", "*extendqidi2"): Merge.
1047         ("extendhisi2", "extendqisi2"): Merge.
1048         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1049         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1050         Merged 2 define_split.
1051         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
1052         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
1053
1054 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1055
1056         * config/s390/s390.md: ("COMPARE"): New mode macro.
1057         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
1058         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
1059         "bungt", "bunle", "bunge", "bltgt"): Merge.
1060
1061 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1062
1063         * config/s390/s390.md: ("INT"): New mode macro.
1064         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
1065         Merge.
1066
1067 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1068
1069         * config/s390/s390.md: ("GPR", "P"): New mode macros.
1070         ("cmpdi", "cmpsi"): Merge.
1071         ("strlendi", "strlensi"): Merge.
1072         ("*strlendi", "*strlensi"): Merge.
1073         ("movmemdi", "movmemsi"): Merge.
1074         ("clrmemdi", "clrmemsi"): Merge.
1075
1076 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1077
1078         * config/s390/s390.md: ("HQI"): New mode macro.
1079         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
1080         ("*tmhi_full", "*tmqi_full"): Merge.
1081         ("*tsthiCCT", "*tstqiCCT"): Merge.
1082         ("*tsthi", "*tstqi"): Merge.
1083         ("*tsthi_cconly", "tstqi_cconly"): Merge.
1084         ("*sethighhisi", "*sethighqisi"): Merge.
1085
1086 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1087
1088         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
1089         config/alpha/unicosmk.h, config/arc/arc.md,
1090         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
1091         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
1092         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
1093         config/arm/semi.h, config/arm/uclinux-elf.h,
1094         config/arm/wince-pe.h, config/fr30/fr30.c,
1095         config/rs6000/altivec.h: Update copyright.
1096
1097 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
1098
1099         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
1100         gcc_assert and gcc_unreachable as appropriate.
1101         (pdp11_output_function_epilogue, output_move_double,
1102         output_move_quad, print_operand_address, output_jump,
1103         output_addr_const_pdp11): Likewise.
1104         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
1105         ASM_OUTPUT_ALIGN): Likewise.
1106         * config/pdp11/pdp11.md: Likewise.
1107         (extendhisi2, subhi3, subqi3): Likewise.
1108
1109 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
1110
1111         PR middle-end/21237
1112         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
1113         to NE_EXPR case.
1114
1115 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1116
1117         * config/ia64/ia64.c: Fix a comment typo.
1118
1119 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
1120
1121         PR target/21397
1122         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
1123         (arm_override_options): Use them instead of manifest constants.  Don't
1124         allow -march to override the -mtune setting.
1125
1126 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
1127
1128         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
1129         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
1130         (function_arg_advance, function_arg, save_restore_insns,
1131         iq2000_expand_prologue, iq2000_output_conditional_branch,
1132         expand_one_builtin, print_operand):
1133         * config/iq2000/iq2000.md (tablejump): Likewise.
1134
1135 2005-05-09  David Ung  <davidu@mips.com>
1136
1137         * config/mips/mips.h (processor_type): Add names for the 24K.
1138         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
1139         processor family.
1140         * config/mips/mips.md (cnv_mode): New attribute for recording the
1141         conversion types of float convert insns.
1142         (cpu): Add 24k and 24kx.
1143         (include): Include 24k.md file.
1144         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
1145         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
1146         (floatdisf2): Setup cnv_mode.
1147         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
1148         setup cnv_mode.
1149         * config/mips/24k.md: New file, contains 24k DFA pipeline
1150         description.
1151
1152 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
1153
1154         * config/sh/sh.c (print_operand_address): Use gcc_assert and
1155         gcc_unreachable as appropriate.
1156         (print_operand, prepare_move_operands, prepare_scc_operands,
1157         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
1158         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
1159         fixup_mova, gen_far_branch, sh_reorg, split_branches,
1160         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
1161         sh_set_return_address, sh_setup_incoming_varargs,
1162         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
1163         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
1164         check_use_sfunc_addr): Likewise.
1165         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
1166         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1167         * config/sh/symbian.c (sh_symbian_mark_dllexport,
1168         sh_symbian_mark_dllimport): Likewise.
1169         * config/sh/sh.md: Likewise.
1170         (movdicc, call_pop, call_value_pop, casesi_worker_1,
1171         casesi_worker_2, casesi_shift_media, casesi_load_media,
1172         return_media): Likewise.
1173
1174 2005-05-08  Roger Sayle  <roger@eyesopen.com>
1175
1176         PR inline-asm/8788
1177         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
1178         operands.
1179
1180 2005-05-08  Richard Henderson  <rth@redhat.com>
1181
1182         * config/alpha/alpha.c (adjust_address): Fix typo last change.
1183
1184 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1185
1186         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
1187         and -1 can happen in reg_renumber when no hard register is assigned.
1188
1189 2005-05-08  Steven Bosscher  <stevenb@suse.de>
1190             Kazu Hirata  <kazu@cs.umass.edu>
1191
1192         PR tree-optimization/14841, tree-optimization/15838
1193         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
1194         (evaluate_stmt): Call it.
1195
1196 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
1197
1198         * config/ia64/ia64.c (ia64_override_options): Don't set
1199         ia64_flag_var_tracking and clear flag_var_tracking here...
1200         (ia64_file_start): ... but here.
1201
1202 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1203
1204         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
1205         and gcc_unreachable as appropriate.
1206         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
1207         m68hc11_gen_highpart, print_operand, print_operand_address,
1208         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
1209         m68hc11_gen_movhi): Likewise.
1210         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
1211         * config/m68hc11/m68hc11.md: Reword comment.
1212
1213 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1214
1215         PR target/21281
1216         * config/m68hc11/predicates.md (splitable_operand): An immediate is
1217         allowed.
1218
1219 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1220
1221         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
1222         the 68HC12 address indirect addressing mode as it is not supported by
1223         bset and bclr.
1224         * config/m68hc11/m68hc11-protos.h
1225         (m68hc11_valid_addressing_p): Declare.
1226         (m68hc11_add_mode): Declare.
1227         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
1228         register_indirect_p and export it.
1229         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
1230         instruction so that it is part of the good BB.
1231         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
1232         addressing with movw.
1233         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
1234         68HC12.
1235         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
1236         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
1237         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
1238         for 68HC11.
1239         ("*movhi_68hc12"): Handle movhi_const0.
1240         ("*subhi3", "subqi3"): Use general_operand for operand 1.
1241         ("*subhi3_zext"): Likewise.
1242
1243 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1244
1245         PR target/19051
1246         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
1247         operand 1 and fix constraints.
1248         ("mulqihi3"): Use general_operand for operand 2.
1249
1250 2005-05-08  Julian Brown  <julian@codesourcery.com>
1251             H.J. Lu  <hongjiu.lu@intel.com>
1252             Paul Brook  <paul@codesourcery.com>
1253
1254         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
1255         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
1256         20050308/2.16.0 or newer for comdat group.
1257         * configure: Regenerated.
1258         * config.in: Regenerated.
1259         * varasm.c (default_function_rodata_section): Put .rodata section in
1260         COMDAT group when necessary.
1261         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
1262         HAVE_COMDAT_GROUP.
1263         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
1264         available.
1265
1266 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1267
1268         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
1269         instead of VARRAY.
1270         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
1271         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
1272         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
1273         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1274
1275 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1276
1277         PR target/16925
1278         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
1279         64-bit constants on 64-bit hosts.
1280         (m68hc11_split_logical): Simplify.
1281         (m68hc11_split_move): Likewise.
1282
1283 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1284             Paolo Bonzini  <bonzini@gnu.org>
1285
1286         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
1287         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
1288         * configure.ac (enable_checking): Fix typos in runtime_checking.
1289         (ENABLE_RUNTIME_CHECKING): Mark as target template.
1290         (xm_file): Prepend auto-host.h
1291         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
1292         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
1293         tconfig.h.
1294         * crtstuff.c: Do not include auto-host.h.
1295         (IN_LIBGCC2): Do not define.
1296         * gcov-io.h: Include tconfig.h, not auto-host.h.
1297         * libgcc2.c: Do not include auto-host.h.
1298         (abort): Do not undefine.
1299         * libgcov.c: Remove unneeded comment about config.h.
1300         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
1301         * config.in, configure: Regenerated.
1302
1303 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1304             Falk Hueffner  <falk@debian.org>
1305
1306         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
1307         and gcc_unreachable as appropriate.
1308         (get_aligned_mem, get_unaligned_address,
1309         alpha_emit_set_long_const, alpha_emit_conditional_branch,
1310         alpha_emit_setcc, alpha_emit_conditional_move,
1311         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
1312         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
1313         alpha_expand_unaligned_load, alpha_expand_block_move,
1314         alpha_expand_zap_mask, get_trap_mode_suffix,
1315         get_round_mode_suffix, get_some_local_dynamic_name,
1316         print_operand_address, function_arg, alpha_return_in_memory,
1317         function_value, alpha_expand_builtin,
1318         alpha_initial_elimination_offset, alpha_expand_epilogue,
1319         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
1320         alphaev5_next_group, alpha_align_insns,
1321         unicosmk_initial_elimination_offset, unicosmk_unique_section,
1322         unicosmk_ssib_name): Likewise.
1323         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
1324         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
1325         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
1326         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
1327         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1328         * config/alpha/alpha.md (*divmodsi_internal_er,
1329         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
1330         call_nt, call_umk, call_vms, call_value, sibcall_value,
1331         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
1332         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
1333         * config/alpha/predicates.md (input_operand): Likewise.
1334
1335 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1336
1337         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
1338         gcc_unreachable, as appropriate.
1339         (frv_function_prologue, frv_alloc_temp_reg,
1340         frv_initial_elimination_offset, frv_expand_block_move,
1341         frv_expand_block_clear, frv_print_operand_jump_hint,
1342         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
1343         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
1344         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
1345         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
1346         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
1347         frv_in_small_data_p, frv_asm_out_constructor,
1348         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
1349         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
1350         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
1351         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
1352         sibcall_value, casesi): Likewise.
1353
1354         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
1355         gcc_unreachable as appropriate.
1356         (print_operand_address, mn10300_print_reg_list, expand_prologue,
1357         expand_epilogue, notice_update_cc, initial_offset,
1358         mn10300_address_cost_1): Likewise.
1359         * config/mn10300/mn10300.md: Likewise.
1360         (absdf2, abssf2, negdf2, negsf2): Likewise.
1361
1362 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
1363
1364         PR target/21416
1365         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
1366         comparisons.
1367         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
1368         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
1369         including sunge_<mode> and sungt_<mode>.
1370
1371 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
1372
1373         * integrate.h (get_hard_reg_initial_val): Change type of register
1374         parameter from int to unsigned int.
1375         (has_hard_reg_initial_val): Likewise.
1376         * integrate.c (get_hard_reg_initial_val): Likewise.
1377         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
1378
1379 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1380
1381         * except.c (eh_status): Change the type of ttype_data to
1382         VEC(tree,gc)*.
1383         (add_ttypes_entry, assign_filter_values,
1384         output_function_exception_table): Use VEC instead of VARRAY.
1385
1386 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
1387
1388         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
1389
1390 2005-05-07  Paul Brook  <paul@codesourcery.com>
1391
1392         * Makefile.in: Fix dependencies.
1393         (GCOV_IO_H, VARRAY_H): Set.
1394
1395 2005-05-07  Anthony Green  <green@redhat.com>
1396
1397         PR bootstrap/21403
1398         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
1399         x$STMP_FIXPROTO test.
1400         * configure: Rebuilt.
1401
1402 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
1403
1404         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
1405         inappropriate feature test macros if flag_iso.
1406
1407 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
1408
1409         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
1410
1411 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
1412
1413         PR target/21441
1414         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
1415         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
1416         Handle moved operand being in special register.
1417         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
1418         presumed working insn.
1419         (mover2side): Add FIXME.
1420
1421 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
1422
1423         * integrate.c (get_func_hard_reg_initial_val): Delete.
1424         (has_func_hard_reg_initial_val): Delete.
1425         (get_hard_reg_initial_val): Inline the old implementation of
1426         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
1427         instead of has_func_hard_reg_initial_val to test for an existing
1428         pseudo.  Only create an rtx if a new initial value entry is needed.
1429         (has_hard_reg_initial_val): Scan the initial value list directly.
1430         Don't create an rtx.
1431
1432 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
1433
1434         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
1435         from extra_options.
1436         * config.in (HAVE_AS_POPCNTB): New.
1437         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
1438         (HAVE_AS_POPCNTB): New.
1439         * configure: Regenerated.
1440         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
1441         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
1442         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
1443         and rs6000_sched_costly_dep.
1444         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
1445         (TARGET_XL_COMPAT): Delete.
1446         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
1447         (popcount<mode>2): New.
1448         (popcntb<mode>2): New.
1449         * config/rs6000/rs6000.opt (mpopcntb): New.
1450
1451         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
1452         if variable name exists.
1453
1454 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
1455
1456         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
1457
1458 2005-05-07  Richard Henderson  <rth@redhat.com>
1459
1460         PR target/21412
1461         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
1462         with constant offsets.
1463
1464 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
1465
1466         * config/v850/v850.c (print_operand): Use gcc_assert and
1467         gcc_unreachable, as appropriate.
1468         (print_operand_address, v850_handle_data_area_attribute,
1469         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
1470         v850_insert_attributes, construct_prepare_instruction): Likewise.
1471         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1472         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
1473
1474 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
1475
1476         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
1477         config/rs6000/rs6000.h: Fix comment typos.
1478
1479 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
1480
1481         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
1482         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
1483         (mips_scalar_mode_supported_p): Delete.
1484
1485 2005-05-06  Eric Christopher  <echristo@redhat.com>
1486
1487         * config/mips/mips.opt: Remove -mint64 option.
1488         * config/mips/mips.c (override_options): Remove -mint64
1489         handling.
1490         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
1491         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
1492         64-bit integer handling.
1493         * doc/invoke.texi (Option Summary): Remove -mint64 for
1494         mips.
1495
1496 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
1497
1498         PR tree-optimization/19401
1499         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
1500         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
1501         (estimated_unrolled_size): New function.
1502         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
1503         tree_unroll_loops_completely): Always unroll loops if the code size
1504         does not increase.
1505         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
1506         loops should be unrolled completely.
1507         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
1508
1509 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
1510
1511         PR rtl-optimization/21254
1512         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
1513         assumptions for loops that otherwise do not roll.
1514         (find_simple_exit): Prefer # of iterations that is guaranteed
1515         not to be infinite.
1516         * loop-unroll.c (decide_peel_once_rolling,
1517         decide_peel_completely): Check whether the loop is infinite.
1518
1519 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
1520
1521         * config/rs6000/sysv4.opt: Fix typo.
1522
1523 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
1524             Jakub Jelinek  <jakub@redhat.com>
1525
1526         PR target/21329
1527         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
1528         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
1529         Don't use rep; movs{l,q} if the repetition count is really small,
1530         instead use a sequence of movs{l,q} instructions.
1531
1532 2005-05-06  Jeff Law  <law@redhat.com>
1533
1534         PR tree-optimization/21380
1535         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
1536         thread through a block with no preds.
1537
1538 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
1539
1540         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
1541         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
1542         add_call_read_ops): Use VEC instead of VARRAY.
1543
1544 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1545
1546         * config/mcore/mcore.c (mcore_print_operand_address): Use
1547         gcc_assert and gcc_unreachable as appropriate.
1548         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
1549         mcore_output_andn, output_inline_const, mcore_output_move,
1550         mcore_output_movedouble, mcore_expand_block_move,
1551         layout_mcore_frame, mcore_initial_elimination_offset,
1552         mcore_expand_prolog, mcore_mark_dllexport,
1553         mcore_mark_dllimport): Likewise.
1554         * config/mcore/mcore.h (switch_to_section): Likewise.
1555         * config/mcore/mcore.md: Likewise.
1556
1557 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
1558
1559         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
1560         TARGET_PROFILE_KERNEL.
1561
1562         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
1563         TARGET_PROFILE_KERNEL use.
1564
1565 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1566
1567         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
1568         and gcc_unreachable, as appropriate.
1569         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
1570         m32r_expand_prologue, m32r_output_function_epilogue,
1571         m32r_legitimize_pic_address, m32r_print_operand_address,
1572         emit_cond_move, m32r_function_symbol,
1573         m32r_output_block_move): Likewise.
1574         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1575         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
1576         *rev_zero_branch_insn): Likewise.
1577
1578 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
1579
1580         PR c++/20961
1581         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
1582         if both NEWDECL and OLDDECL are already weak.
1583
1584 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
1585
1586         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1587
1588 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
1589             Kaz Kojima  <kkojima@gcc.gnu.org>
1590
1591         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
1592         and plus_constant.
1593
1594 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
1595             David Edelsohn  <edelsohn@gnu.org>
1596
1597         * config.gcc: Add .opt magic for the rs6000 ports.
1598
1599         * doc/invoke.texi: Document -mabi= option properly.  Document
1600         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
1601         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
1602         -misel=.
1603
1604         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
1605         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
1606         TARGET_XL_COMPAT.
1607
1608         * config/rs6000/aix.opt: New.
1609         * config/rs6000/aix41.opt: New.
1610         * config/rs6000/aix64.opt: New.
1611         * config/rs6000/darwin.opt: New.
1612         * config/rs6000/linux64.opt: New.
1613         * config/rs6000/rs6000.opt: New.
1614         * config/rs6000/sysv4.opt: New.
1615
1616         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
1617         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
1618         SUBTARGET_SWITCHES.
1619         Define TARGET_USES_SYSV4_OPT.
1620         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
1621         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
1622         TARGET_USES_AIX64_OPT.
1623         * config/rs6000/aix51.h: Same.
1624         * config/rs6000/aix52.h: Same.
1625         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
1626         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
1627         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
1628         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
1629         * config/rs6000/linux64.h: Use
1630         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
1631
1632         * config/rs6000/rs6000.c: Remove definitions of
1633         rs6000_sched_restricted_insns_priority,
1634         rs6000_long_double_size_string, rs6000_altivec_vrsave,
1635         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
1636         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
1637         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
1638         rs6000_alignment_string.  Define rs6000_explicit_options.
1639         (rs6000_parse_abi_options): Remove.
1640         (rs6000_parse_alignment_option): Remove.
1641         (rs6000_parse_float_gprs_option): Remove.
1642         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
1643         TARGET_DEFAULT_TARGET_FLAGS.
1644         (rs6000_override_options): Revamp to use new .opt machinery.
1645
1646         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
1647         of new .opt machinery.  Remove target_flags.  Redefine
1648         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
1649         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
1650         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
1651         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
1652         rs6000_longcall_switch, rs6000_default_long_calls,
1653         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
1654         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
1655         TARGET_ALTIVEC_VRSAVE.
1656
1657 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
1658
1659         * config.gcc (hppa1.1-*-rtems*): Remove.
1660         * config/pa/rtems.h: Remove.
1661
1662 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
1663
1664         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
1665         Exclude roe/603e multilib variants.
1666
1667 2005-05-04  Denis Chertykov  <denisc@overta.ru>
1668
1669         PR target/21284
1670         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
1671         for output.
1672
1673 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
1674
1675         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
1676         arm/pe.opt to $extra_options.
1677         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
1678         (target_float_abi_name, target_float_switch, target_abi_name)
1679         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
1680         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
1681         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
1682         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
1683         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
1684         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
1685         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
1686         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
1687         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
1688         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
1689         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
1690         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
1691         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
1692         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
1693         (arm_pic_register_string): Delete.
1694         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
1695         TARGET_TPCS_FRAME.
1696         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
1697         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
1698         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
1699         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
1700         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
1701         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
1702         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
1703         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
1704         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
1705         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
1706         (SUBTARGET_SWITCHES): Delete.
1707         * config/arm/arm.c (target_float_switch): Delete.
1708         (arm_cpu_select): Moved from config/arm/arm.h.
1709         (target_fpu_name, target_fpe_name, target_float_abi_name)
1710         (target_abi_name, structure_size_string, arm_pic_register_string)
1711         (arm_select): Make static.
1712         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1713         (arm_handle_option): New function.
1714         (arm_override_options): Update target_flags checks for new mask names.
1715         Remove target_float_switch code.
1716         (arm_expand_prologue, thumb_expand_prologue): Check
1717         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
1718         * config/arm/arm.opt, config/arm/pe.opt: New files.
1719
1720 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
1721
1722         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
1723         gcc_unreachable as appropriate.
1724         (arc_double_limm_p, arc_setup_incoming_varargs,
1725         arc_compute_function_type, arc_output_function_prologue,
1726         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
1727         output_shift, arc_print_operand, arc_print_operand_address,
1728         arc_final_prescan_insn): Likewise.
1729         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1730
1731 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
1732
1733         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
1734         comparing Pmode.
1735         (SDI): New.
1736         (cmp): Delete.
1737         (wd): New.
1738         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
1739         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
1740         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
1741         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
1742         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
1743         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
1744         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
1745         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
1746
1747 2005-05-05  Paul Brook  <paul@codesourcery.com>
1748
1749         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
1750         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
1751         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
1752         and tree-data-ref.h with *_H variables.
1753
1754 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1755
1756         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
1757
1758 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1759
1760         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
1761
1762 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
1763
1764         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
1765
1766 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
1767
1768         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
1769         setting of vrsave register for current function after
1770         call to save_world is emitted.
1771
1772 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
1773
1774         * config/mmix/predicates.md: New file.
1775         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
1776         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
1777         (mmix_foldable_comparison_operator, mmix_comparison_operator)
1778         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
1779         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1780         Don't define.
1781         * config/mmix/mmix.md: Include predicates.md.
1782         ("call", "call_value"): Force address to register if it isn't a
1783         mmix_symbolic_or_address_operand.
1784
1785 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
1786
1787         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
1788         the flags are of appropriate types.
1789         (num_ssa_operands): Generalize using the generic interface.
1790         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
1791         iterator.
1792
1793 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
1794
1795         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
1796         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
1797
1798 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1799
1800         * tree-outof-ssa.c (edge_leader, stmt_list,
1801         analyze_edges_for_bb): Use VEC instead of VARRAY.
1802         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
1803         (perform_edge_inserts): Call init_analayze_edges_for_bb and
1804         fini_analayze_edges_for_bb.
1805
1806 2005-05-04  James E Wilson  <wilson@specifixinc.com>
1807
1808         PR driver/21112
1809         * gcc.c (process_command): In the second argv scan loop, ignore
1810         Xassembler and Xpreprocessor, along with their argument.
1811
1812 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1813
1814         * tree-flow-inline.h, tree-ssa-operands.c,
1815         tree-ssa-operands.h, tree-ssa-opfinalize.h:
1816         Likewise. tree-vn.c: Fix comment typos.
1817         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
1818
1819 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
1820
1821         * doc/tm.texi (Target Hooks): Document
1822         TARGET_RESOLVE_OVERLOADED_BUILTIN.
1823
1824 2005-05-04  Paul Brook  <paul@codesourcery.com>
1825
1826         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
1827
1828 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1829
1830         * dwarf2out.c (incomplete_types, retry_incomplete_types,
1831         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
1832         of VARRAY.
1833
1834         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
1835         get_expansion, expand_var_during_unrolling,
1836         insert_var_expansion_initialization,
1837         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
1838         instead of VARRAY.
1839
1840         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
1841         update_stmt.
1842
1843 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
1844
1845         PR middle-end/15618
1846         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
1847         the same as INTEGER_TYPE.
1848         (fold_binary): Fold "bool_var != 0" to bool_var.
1849         Fold "bool_var == 1" to bool_var.
1850
1851 2004-05-03  Richard Henderson  <rth@redhat.com>
1852
1853         PR middle-end/21318
1854         * function.c (instantiate_virtual_regs_in_insn): Use the mode
1855         from recog_data instead of insn_data.
1856
1857 2005-05-03  DJ Delorie  <dj@redhat.com>
1858
1859         * common.opt (fdiagnostics-show-option): No variable is needed.
1860         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
1861         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
1862         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
1863         Save and restore original message format.  Use flag in context
1864         instead of global.
1865         (warning): Don't test for enabled warnings here.
1866         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
1867         here.
1868
1869 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
1870
1871         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
1872         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
1873         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
1874         * aclocal.m4: Don't include accross.m4.
1875         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1876         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1877         * configure, config.in: Regenerate.
1878
1879 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
1880
1881         PR middle-end/21265
1882         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
1883         (clear_storage): Add argument.
1884         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
1885         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
1886         tailcall.
1887         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
1888         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
1889         (store_expr, store_constructor): Adjust callers.
1890         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
1891         to emit_block_move if CALL_EXPR_TAILCALL (exp).
1892         (expand_builtin_memmove): Add ORIG_EXP argument, copy
1893         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
1894         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
1895         with EXP.  Pass EXP to expand_builtin_memmove.
1896         (expand_builtin_memset): Add ORIG_EXP argument, pass
1897         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
1898         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
1899         Pass EXP to expand_builtin_memset.
1900         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
1901         the new CALL_EXPR.
1902         (expand_builtin_strncmp): Likewise.
1903         (expand_builtin_printf): Replace ARGLIST argument with EXP.
1904         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
1905         (expand_builtin_fprintf): Likewise.
1906         (expand_builtin): Adjust calls to
1907         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
1908
1909         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
1910         item in V4SF mode.
1911
1912         PR rtl-optimization/21239
1913         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
1914
1915 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1916
1917         * tree-flow.h (tree_ann_common_d): Move aux to ...
1918         (stmt_ann_d): ... here.
1919         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
1920         move_computations_stmt, schedule_sm): Update references to
1921         aux.
1922         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
1923
1924         * tree-cfg.c (remove_bb): Remove a redundant call to
1925         set_bb_for_stmt.
1926         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
1927         Likewise.
1928
1929 2005-05-03  Richard Henderson  <rth@redhat.com>
1930
1931         * config/rs6000/rs6000.c: Remove conflict markers.
1932
1933         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
1934
1935 2005-05-03  James E Wilson  <wilson@specifixinc.com>
1936
1937         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
1938
1939 2005-05-03  DJ Delorie  <dj@redhat.com>
1940
1941         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
1942         decide if the warning will be printed.
1943         * calls.c (expand_call): Likewise.
1944         * function.c (init-function_start): Likewise.
1945
1946         * common.opt (-fdiagnostics-show-option): New.
1947         * opts.c (option_enabled): Accept the option index instead of a
1948         pointer to the option descriptor.
1949         * opts.h (option_enabled): Likewise.
1950         * toplev.c (print_switch_values): Pass option index, not option
1951         descriptor.
1952         * diagnostic.h (diagnostic_info): Add option_index.
1953         * diagnostic.c: Include opts.h.
1954         (diagnostic_set_info): Initialize option_index.
1955         (diagnostic_report_diagnostic): Amend option name if appropriate.
1956         (warning): Check to see if the specified warning is enabled.
1957         Store option index.
1958         * doc/invoke.texi (-fdiagnostics-show-options): Document.
1959
1960 2005-05-03  Richard Henderson  <rth@redhat.com>
1961
1962         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
1963         SPEC_OR_GEN_REGS definitions.
1964
1965 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
1966
1967         PR target/16888
1968         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
1969         for unavailable registers.
1970
1971 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1972
1973         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
1974
1975         * cfglayout.c (block_locators_blocks,
1976         insn_locators_initialize, insn_scope): Use VEC instead of
1977         VARRAY.
1978
1979         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
1980         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
1981         VARRAY.
1982
1983 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1984
1985         * config/sparc/predicates.md (const_compl_high_operand): New.
1986         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
1987         gen_safe_HIGH64.
1988         (sparc_emit_set_const64_quick1): Adjust for above change.
1989         (sparc_emit_set_const64_quick2): Likewise.
1990         (sparc_emit_set_const64_longway): Likewise.
1991         (sparc_emit_set_const64): Likewise.
1992         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
1993         movdi_const64_special): Delete.
1994         (logical constant splitters): Use const_compl_high_operand.
1995
1996 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
1997
1998         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
1999         rather than STRIP_NOPS.
2000
2001 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
2002
2003         PR rtl-optimization/21330
2004         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2005         returning non-NULL.
2006         (unswitch_single_loop): Clear cinsn when retrying.
2007
2008         PR target/21297
2009         * config/i386/i386.c (legitimize_address): When canonicalizing
2010         ASHIFT into MULT, multiply by 1 << shift_count instead of
2011         1 << log2 (shift_count).
2012
2013 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
2014
2015         * lambda-code.c (gcc_loop_to_lambda_loop,
2016         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2017         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2018         generic operand interface.
2019         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2020         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2021         generic operand interface.
2022         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2023         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2024         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2025         num_imm_uses): Use ssa_use_operand_t.
2026         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2027         get_v_must_def_ops): Delete.
2028         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2029         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2030         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2031         get_v_must_def_kill_ptr): Delete.
2032         (delink_stmt_imm_use): Move and use new operand interface.
2033         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2034         op_iter_next_tree): Use new operand implementation.
2035         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
2036         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2037         type check.
2038         (op_iter_next_mustdef, op_iter_next_maydef,
2039         op_iter_next_must_and_may_def): Delete. Replace with...
2040         (op_iter_next_maymustdef): New.  Combine must and may next operations.
2041         (op_iter_init_maydef, op_iter_init_mustdef,
2042         op_iter_init_must_and_may_def): Use new interface.
2043         (single_ssa_tree_operand ): New.  Process single operands only as trees.
2044         (single_ssa_use_operand): New.  Process single operands only as uses.
2045         (single_ssa_def_operand): New.  Process single operands only as defs.
2046         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
2047         specified types.
2048         (num_ssa_operands): New.  Count the number of specified operands.
2049         (compare_ssa_operands_equal): New.  Compare two statements' operands.
2050         (single_phi_def): New.  Return true if PHI has one def of the specified
2051         operand type.
2052         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
2053         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
2054         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
2055         (struct stmt_ann_d): Operands field no longer require GTY().
2056         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
2057         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
2058         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2059         dump_replaceable_exprs, rewrite_trees): Use generic interface.
2060         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
2061         Use use_operand_p instead of ssa_imm_use_t *.
2062         * tree-pretty-print.c (dump_vops): check if operands are active before
2063         dumping virtual operands.
2064         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
2065         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
2066         (ccp_fold): Use new interface.
2067         (ccp_visit_stmt): Remove unused variables and code.
2068         (convert_to_gimple_builtin): Insert statements before calling
2069         mark_new_vars_to_rename.
2070         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
2071         (copy_prop_visit_cond_stmt): Use generic interface.
2072         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
2073         annotation in table.
2074         (thread_across_edge): Use generic interface.
2075         (initialize_hash_element): Initialzie with stmt, not annotation.
2076         (eliminate_redundant_computations): Use generic interface.
2077         (record_equivalences_from_stmt): Pass stmt, not annotation.
2078         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
2079         interface.
2080         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
2081         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
2082         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
2083         generic operand interface.
2084         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
2085         interface.
2086         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
2087         Interface.
2088         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
2089         (build_defs, build_uses, build_v_may_defs, build_vuses,
2090         build_v_must_defs): Change type to struct opbuild_list_d.
2091         (ops_active): New.  Operands active boolean.
2092         (operand_memory, operand_memory_index): New.  Operand memory managers.
2093         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2094         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
2095         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2096         Change from functions to static variable list heads.
2097         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
2098         (opbuild_initialize_real): New.  Initialize a virtual build list.
2099         (opbuild_free): New.  Free a build list.
2100         (opbuild_num_elems): New.  Number of items in a list.
2101         (opbuild_append_real): New.  Add a real (tree *) operand.
2102         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
2103         (opbuild_first): New.  Return first element index in a list.
2104         (opbuild_next): New.  Return next element in a list.
2105         (opbuild_elem_real): New.  Return real element.
2106         (opbuild_elem_virtual): New.  Return virtual element.
2107         (opbuild_elem_uid): New.  Return UID of virtual element.
2108         (opbuild_clear): New.  Reset an operand list.
2109         (opbuild_remove_elem): New.  Remove an element form a list.
2110         (ssa_operands_active): New.  Return true if operand cache is active.
2111         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
2112         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
2113         (correct_use_link): Use use_operand_p.
2114         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
2115         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
2116         (cleanup_v_may_defs): Use new implmentation.
2117         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
2118         implementation.
2119         (append_def, append_use, append_v_may_def, append_vuse,
2120         append_v_must_def): Call opbuild_append routine instead of using varray.
2121         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
2122         global parse_old_ops variable.
2123         (free_ssa_operands): New implementation.
2124         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
2125         (copy_virtual_operands): Move. New generic implementation.
2126         (create_ssa_artficial_load_stmt): Move. New implementation.
2127         (swap_tree_operands): Update for new implementation.
2128         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
2129         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
2130         rather than a varray.
2131         (verify_imm_links): Use use_operand_p.
2132         (dump_immediate_uses_for): If the immediate use variable is a virtual
2133         variable, show the virtual ops in the stmt.
2134         * tree-ssa-operands.h (def_operand_p): No longer a structure.
2135         (NULL_DEF_OPERAND_P): Now a #define.
2136         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
2137         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
2138         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
2139         mustdef_optype_d): New.  Use Linked list representation.
2140         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
2141         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
2142         (struct stmt_operands_d): Change to new pointers that are not GTY.
2143         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
2144         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
2145         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
2146         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
2147         SET_V_MUST_DEF_KILL): Delete.
2148         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
2149         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
2150         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
2151         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
2152         (enum ssa_op_iter_type): Operand iterator typechecking values.
2153         (struct ssa_operand_iterator_d): Use linked lists of operands.
2154         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
2155         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
2156         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
2157         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
2158         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
2159         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
2160         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
2161         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
2162         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
2163         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
2164         alloc_vuse, and alloc_mustdef.
2165         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
2166         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2167         and finalize_ssa_v_must_def_ops.
2168         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
2169         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
2170         stmt around.
2171         (compute_avail): Use generic iterator interface.
2172         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
2173         (stmt_makes_single_load, stmt_makes_single_store): Use
2174         ZERO_SSA_OPERANDS.
2175         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
2176         (statement_sink_location): Use generic interface.
2177         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
2178         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
2179         reset the immediate use link nodes.
2180         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
2181         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
2182         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
2183         (eliminate_tail_call): Use generic operand interface.
2184         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
2185         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
2186         interface.
2187         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
2188         interface.
2189         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
2190         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
2191         vuse_optype.
2192         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
2193         Use statement pointer instead of vuse_optype.  Use generic interface.
2194         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
2195         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
2196         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
2197         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
2198         * doc/tree-ssa.texi: Update documentation for operand interface.
2199
2200 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2201
2202         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
2203         gcc_unreachable as appropriate.
2204         (machopic_function_base_name, machopic_indirect_data_reference,
2205         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
2206         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
2207         * config/rs6000/altivec.md (*mov<mode>_internal,
2208         build_vector_mask_for_load): Likewise.
2209         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
2210         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
2211         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
2212         * config/rs6000/predicates.md (easy_fp_constant,
2213         logical_operand): Likewise.
2214         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
2215         compute_save_world_info, rs6000_emit_prologue,
2216         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
2217         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
2218         directly.
2219
2220 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
2221
2222         PR middle-end/21282
2223         * convert.c (convert_to_integer): Convert ceil and floor in
2224         c99 mode only.
2225
2226 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
2227
2228         PR target/20813
2229         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
2230         define_insn_and_split.  Split only when memory operand is
2231         offsettable.  Use adjust_address rather than plus_constant.
2232         (floatunssidf2_internal): Likewise.
2233         (fix_truncdfsi2_internal): Split only when memory operand is
2234         offsettable.  Use adjust_address rather than plus_constant.
2235         (fix_trunctfsi2_internal): Likewise.
2236         (floatsidf2_internal): Likewise.
2237
2238 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
2239
2240         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
2241         (set_value_range_to_null): Likewise.
2242         (set_value_range_to_varying): New function.  Use it in all
2243         call sites that used to call set_value_range (vr, VR_VARYING, ...).
2244         (extract_range_from_assert): If the integral type has a
2245         super-type, and LIMIT is not within MIN and MAX values of that
2246         type, set the resulting range to VR_VARYING.
2247
2248 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
2249
2250         * config/mmix/mmix.opt: New file.
2251         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
2252         (mmix_cc1_ignored_option): Don't declare.
2253         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
2254         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
2255         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
2256         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
2257         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
2258         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
2259         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
2260         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
2261         Don't define.
2262         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
2263         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
2264         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2265
2266 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
2267
2268         PR c/15698
2269         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
2270         * c-decl.c (current_function_prototype_built_in,
2271         current_function_prototype_arg_types): New.
2272         (merge_decls): Keep source location of prototype followed by
2273         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
2274         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
2275         (start_function): Always set current_function_prototype_locus,
2276         current_function_prototype_built_in and
2277         current_function_prototype_arg_types.  Check for external
2278         prototype whether or not visible for external function and set
2279         current_function_prototype_arg_types accordingly.
2280         (store_parm_decls_oldstyle): Use
2281         current_function_prototype_arg_types for checking old-style
2282         definition against prototype.  Give warnings only if
2283         current_function_prototype_built_in).
2284
2285 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
2286
2287         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
2288         (ggc_alloc_zone_stat): Don't define.
2289         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
2290         ggc_alloc_zone_pass_stat.
2291         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
2292         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
2293         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
2294
2295 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
2296
2297         * calls.c (expand_call): Handle current_function_pretend_args_size
2298         when checking for sibcalls.
2299
2300 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2301
2302         PR tree-optimization/21294
2303         * tree-vrp.c (vrp_expr_computes_nonzero): New.
2304         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
2305
2306 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
2307
2308         PR 19985
2309         * gcov-io.h: Declare gcov external functions hidden.
2310
2311 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2312
2313         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
2314         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
2315         Use VEC instead of VARRAY.
2316         (equiv_free): New.
2317
2318         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
2319         out common code.
2320
2321 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
2322
2323         * c-common.c (resolve_overloaded_builtin): Forward to target
2324         hook for BUILT_IN_MD built-ins.
2325         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
2326         for all types of built-in.
2327         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
2328         in the definition of the target hooks struct.
2329         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
2330         * config/rs6000/altivec.h: Rewritten.
2331         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
2332         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
2333         rs6000_builtin_type, rs6000_builtin_type_compatible,
2334         altivec_overloaded_builtins, rs6000_builtin_type,
2335         rs6000_builtin_type_compatible): New.
2336         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
2337         New.
2338         (def_builtin): Turn into a function.  Check for duplicates and store
2339         the builtin into rs6000_builtin_decls.
2340         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
2341         bdesc_1arg): Add overloaded builtins.
2342         (altivec_expand_builtin): Check for unresolved overloaded builtins,
2343         do not support ALTIVEC_COMPILETIME_ERROR.
2344         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
2345         nodes to represent front-end types.
2346         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
2347         with opaque arguments and/or return values.
2348         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
2349         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
2350         (rs6000_builtin_type_index): New.
2351         (is_ev64_opaque_type): Rename to...
2352         (rs6000_is_opaque_type): ... this.
2353         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
2354         target hook.
2355
2356 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2357
2358         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
2359         instead of VARRAY.
2360
2361 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2362             Bernd Schmidt  <bernd.schmidt@analog.com>
2363
2364         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
2365         print_address_operand, print_operand, legitimize_pic_address,
2366         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
2367         output_pop_multiple): Use gcc_assert or gcc_unreachable as
2368         appropriate.
2369         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
2370
2371 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
2372
2373         * doc/passes.texi: Document vectorization pass.
2374
2375 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2376
2377         * tree-scalar-evolution.c (get_exit_conditions_rec,
2378         select_loops_exit_conditions,
2379         number_of_iterations_for_all_loops,
2380         analyze_scalar_evolution_for_all_loop_phi_nodes,
2381         scev_analysis): Use VEC instead of VARRAY.
2382
2383 2005-05-02  Michael Matz  <matz@suse.de>
2384
2385         PR c++/19542
2386         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
2387         (warn_strict_null_sentinel): Define.
2388         (check_function_sentinel): Check for null_node as valid sentinel too.
2389         * c-common.h (c_tree_index): Added CTI_NULL.
2390         (null_node) Define global_tree[CTI_NULL].
2391         (warn_strict_null_sentinel): Declare.
2392         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
2393         * c.opt: (Wstrict-null-sentinel): New C++ option.
2394         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
2395
2396 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2397
2398         * gimplify.c (gimplify_compound_lval): Use VEC instead of
2399         VARRAY.
2400
2401         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
2402
2403         * dwarf2out.c (decl_scope_table, push_decl_scope,
2404         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
2405         instead of VARRAY.
2406
2407 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
2408
2409         PR C++/14391
2410         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
2411         if !flag_weak.
2412         * doc/cpp.texi (__DEPRECATED): Document.
2413         (__EXCEPTIONS): Likewise.
2414         (__GXX_WEAK__): Likewise.
2415
2416         * function.c (INVOKE__main): Do not define.
2417         (expand_main_function): Check HAS_INIT_SECTION when determining
2418         whether or not to call __main.
2419
2420 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2421
2422         * tree-ssa-loop-ivopts.c: Fix a comment typo.
2423
2424 2005-01-05  Paul Brook  <paul@codesourcery.com>
2425
2426         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
2427         (INITIALIZE_TRAMPOLINE): Use it.
2428         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
2429         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
2430         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
2431
2432 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
2433
2434         * doc/install.texi (Specific): Omit dots in the @anchors names
2435         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
2436         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
2437
2438 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
2439
2440         PR tree-optimization/18316
2441         PR tree-optimization/19126
2442         * tree.c (build_int_cst_type): Avoid shift by size of type.
2443         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
2444         argument.
2445         * tree-scalar-evolution.h (simple_iv): Declaration changed.
2446         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
2447         field.
2448         (dump_cand): Dump depends_on information.
2449         (determine_biv_step): Add argument to simple_iv call.
2450         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
2451         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
2452         constant.
2453         (add_candidate_1): Record depends_on for candidates.
2454         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
2455         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
2456         Handle ivs with nonconstant step.
2457         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
2458         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
2459         (create_new_iv): Unshare the step before passing it to create_iv.
2460         (free_loop_data): Free cand->depends_on.
2461         (build_addr_strip_iref): New function.
2462         (find_interesting_uses_address): Use build_addr_strip_iref.
2463         (strip_offset_1): Split the recursive part from strip_offset.
2464         Strip constant offset component_refs and array_refs.
2465         (strip_offset): Split the recursive part to strip_offset_1.
2466         (add_address_candidates): Removed.
2467         (add_derived_ivs_candidates): Do not use add_address_candidates.
2468         (add_iv_value_candidates): Add candidates with stripped constant
2469         offset.  Consider all candidates with initial value 0 important.
2470         (struct affine_tree_combination): New.
2471         (aff_combination_const, aff_combination_elt, aff_combination_scale,
2472         aff_combination_add_elt, aff_combination_add,
2473         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
2474         fold_affine_sum): New functions.
2475         (get_computation_at): Use fold_affine_sum.
2476         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
2477         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
2478         to simple_iv call.
2479
2480 2005-04-30  Michael Matz  <matz@suse.de>
2481
2482         * config/i386/i386.md (movmemsi): Also active when
2483         TARGET_INLINE_ALL_STRINGOPS.
2484
2485 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2486
2487         PR bootstrap/20633
2488         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
2489
2490 2005-04-30  Paul Brook  <paul@codesourcery.com>
2491
2492         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
2493         thumb mode.
2494         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
2495         * config/arm/ieee754-sf.S: Ditto.
2496         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
2497         (FUNC_ALIAS): Use .thumb_set for thumb routines.
2498
2499 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2500
2501         * tree-ssanames.c: Fix a comment typo.
2502         * doc/options.texi: Fix a typo.
2503
2504 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
2505
2506         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
2507         gcc_unreachable as appropriate.
2508         (split_adds_subs, cond_string, print_operand,
2509         h8300_initial_elimination_offset, h8300_classify_operand,
2510         h8300_unary_length, h8300_short_immediate_length,
2511         h8300_bitfield_length, h8300_binary_length,
2512         h8300_insn_length_from_table, compute_mov_length, output_plussi,
2513         compute_plussi_length, compute_plussi_cc, output_logical_op,
2514         compute_logical_op_length, compute_logical_op_cc,
2515         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
2516         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
2517         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
2518         h8300_regs_ok_for_stm): Likewise.
2519         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
2520         monitor_prologue): Likewise.
2521
2522 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2523
2524         * loop-invariant.c (invariants, create_new_invariant,
2525         get_inv_cost, best_gain_for_invariant,
2526         find_invariants_to_move, move_invariants,
2527         init_inv_motion_data, free_inv_motion_data): Use VEC instead
2528         of VARRAY.
2529
2530 2005-04-29  Richard Henderson  <rth@redhat.com>
2531
2532         * function.c (instantiate_decls): Remove valid_only argument.
2533         (instantiate_decls_1, instantiate_decl): Likewise.
2534         (instantiate_virtual_regs_1): Delete.
2535         (instantiate_virtual_regs_lossage): Delete.
2536         (instantiate_virtual_regs_in_rtx): New.
2537         (safe_insn_predicate): New.
2538         (instantiate_virtual_regs_in_insn): New.
2539         (instantiate_virtual_regs): Update to match all that.  Only run
2540         instantiate_decls once.
2541
2542 2005-04-29  Richard Henderson  <rth@redhat.com>
2543             Daniel Jacobowitz  <dan@codesourcery.com>
2544
2545         * gengtype.c (write_func_for_structure): Split out ...
2546         (output_type_enum): ... new function.  Fix thinko accessing
2547         TYPE_PARAM_STRUCT data.
2548
2549 2005-04-29  Tom Tromey  <tromey@redhat.com>
2550
2551         * tree.c (build_block): Removed unused 'tags' argument.
2552         * tree.h (build_block): Removed argument.
2553
2554 2005-04-29  Michael Matz  <matz@suse.de>
2555
2556         PR rtl-optimization/21144
2557         * postreload.c (reload_cse_move2add): Check for VOIDmode.
2558
2559 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
2560
2561         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
2562         flag_reorder_blocks.
2563
2564 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2565
2566         PR tree-optimization/21030
2567         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
2568         ranges where VR->MAX is smaller than VR->MIN.
2569
2570 2005-04-29  Devang Patel  <dpatel@apple.com>
2571
2572         PR tree-optimization/21272
2573         PR tree-optimization/21266
2574         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
2575
2576 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2577
2578         * tree-flow-inline.h: Fix a comment typo.
2579         * doc/tree-ssa.texi: Fix a typo.
2580
2581         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
2582
2583 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
2584
2585         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
2586         gcc_unreachable as appropriate.
2587         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
2588         fr30_print_operand, fr30_move_double): Likewise.
2589         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
2590
2591 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
2592
2593         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
2594         definition has already been provided.
2595         (ARM_EABI_DTORS_SECTION_OP): Likewise.
2596         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
2597         (ARM_EABI_DTORS_SECTION_OP): Likewise.
2598
2599 2005-04-29  Jim Tison  <jtison@us.ibm.com>
2600
2601         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
2602         trace hooks calls to improve performance.
2603
2604 2005-04-29  Julian Brown  <julian@codesourcery.com>
2605             Mark Mitchell  <mark@codesourcery.com>
2606             Paul Brook  <paul@codesourcery.com>
2607
2608         * crtstuff.c: Handle targets that use .init_array.
2609         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
2610         that INVOKE__main is set correctly.
2611         (expand_main_function): Test INVOKE__main.
2612         * libgcc2.c: Do not define __main when using .init_array.
2613         * config/arm/arm.c (arm_elf_asm_constructor): New function.
2614         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
2615         libgcc version.
2616         (DTORS_SECTION_ASM_OP): Likewise.
2617         (CTOR_LIST_BEGIN): Define specially when in libgcc.
2618         (CTOR_LIST_END): Likewise.
2619         (DTOR_LIST_BEGIN): Likewise.
2620         (DTOR_LIST_END): Likewise.
2621         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
2622         (FINI_SECTION_ASM_OP): Likewise.
2623         (INIT_ARRAY_SECTION_ASM_OP): Define.
2624         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
2625         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
2626         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
2627         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
2628         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
2629
2630 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
2631
2632         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
2633         gcc_assert and gcc_unreachable as appropriate.
2634         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
2635         const_int_cost, output_move_const_into_data_reg,
2636         output_move_qimode, output_move_double, find_addr_reg,
2637         print_operand, print_operand_address): Likewise.
2638         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
2639         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
2640         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
2641         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
2642         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
2643         conditional_trap): Likewise.
2644         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
2645
2646 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
2647
2648         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
2649         gcc_unreachable as appropriate.
2650         (gen_conditional_move, xtensa_split_operand_pair,
2651         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
2652         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
2653         xtensa_copy_incoming_a7, xtensa_output_literal,
2654         xtensa_output_literal, xtensa_output_literal): Likewise.
2655         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2656         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
2657         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
2658         movsicc_internal1, movsfcc_internal0,
2659         movsfcc_internal1): Likewise.
2660
2661 2005-04-28  James E Wilson  <wilson@specifixinc.com>
2662
2663         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
2664         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
2665
2666 2005-04-28  DJ Delorie  <dj@redhat.com>
2667
2668         * opt-functions.awk (var_set): Emit proper initializer for
2669         non-target bitfields.
2670
2671 2005-04-28  Devang Patel  <dpatel@apple.com>
2672
2673         * dbxout.c (have_used_extensions): Remove.
2674         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
2675         have_used_extensions.
2676
2677 2005-04-28  James E Wilson  <wilson@specifixinc.com>
2678
2679         * doc/install.texi: Update -enable-languages info.  Correct path to
2680         html docs.
2681
2682 2005-04-28  DJ Delorie  <dj@redhat.com>
2683
2684         * optc-gen.awk (END): Make sure no variable is defined more
2685         than once.
2686         * opth-gen.awk (END): Allocate bits on a per-variable basis.
2687         Allow for bitfield variables other than target_flags.
2688         * doc/options.text (Mask): Document that you may specify a
2689         variable other than target_flags.
2690
2691 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
2692
2693         PR rtl-optimization/18877
2694         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
2695         number in val.start.
2696
2697 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
2698
2699         PR target/20813
2700         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
2701         MASK_PPC_GFXOPT.
2702         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2703         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2704         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2705
2706 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
2707
2708         * arm.c (legitimize_pic_address): Fix sense of assertion test for
2709         creating pseudos when the base offset is too large.
2710
2711 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2712
2713         * global.c (earlyclobber_regclass): Change the type to
2714         VEC(int,heap).
2715         (check_earlyclobber): Update uses of earlyclobber_regclass.
2716         (mark_reg_use_for_earlyclobber): Likewise.
2717         (calculate_local_reg_bb_info): Allocate and free
2718         earlyclobber_regclass using the VEC API.
2719
2720 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
2721
2722         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
2723         assert.
2724
2725 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2726
2727         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
2728         (*targetm.foo).
2729
2730         * config.gcc: Obsolete c4x-* and tic4x-*.
2731
2732         * tree.h (edge_def): Remove.
2733
2734         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
2735         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
2736         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
2737         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
2738         where appropriate.
2739
2740         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
2741         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
2742         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
2743         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
2744         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
2745         machmode.def, mips-tfile.c, params.c, pretty-print.c,
2746         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
2747         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
2748         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
2749         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
2750         config/i386/cygming.h, config/i386/djgpp.h,
2751         config/i386/lynx.h, config/i386/netware.c,
2752         config/i386/winnt.c, config/ia64/ia64-c.c,
2753         config/iq2000/iq2000.c, config/m32r/little.h,
2754         config/m68k/m68k-protos.h, config/m68k/m68k.h,
2755         config/m68k/m68k.md, config/mcore/mcore.c,
2756         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
2757         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2758         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
2759         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2760         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
2761         config/pdp11/pdp11.h, config/rs6000/darwin.h,
2762         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
2763         config/s390/2064.md, config/s390/2084.md,
2764         config/s390/s390-modes.def, config/s390/s390-protos.h,
2765         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
2766         config/stormy16/stormy16.c, config/vax/vax-protos.h,
2767         config/vax/vax.c, config/vax/vax.h,
2768         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
2769         copyright.
2770
2771 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
2772
2773         * c-typeck.c (build_compound_expr): Correct logic in last change.
2774
2775 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
2776
2777         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
2778         parameters.  Replace conditional move code with assert checking for
2779         ar.lc.  Delete obsolete comments.
2780         (set_src_needs_barrier): Delete cond parameter, and code using it.
2781         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
2782         assert checking for PR_REGS.  Fix calls to update_set_flags and
2783         set_src_needs_barrier.
2784         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
2785         callers.  Rewrite explanatory comment before the function.
2786         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
2787         Fix all callers.
2788
2789 2005-04-27  Mike Stump  <mrs@apple.com>
2790
2791         * doc/cpp.texi: gcc now implements universal character names.
2792
2793 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2794
2795         PR c/21159
2796         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
2797         being a compound expression whose right-hand side is cast to void.
2798
2799 2005-04-27  Caroline Tice  <ctice@apple.com>
2800
2801         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2802         Remove targetm.have_named_sections test.
2803         (fix_edges_for_rarely_executed_code): Likewise.
2804         (insert_section_boundary_note): Likewise.
2805         (reorder_basic_blocks): Check partitioning flag before calling
2806         verify_hot_cold_block_grouping.
2807         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2808         the function struct rather than global variables.
2809         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2810         (COLD_END_LABEL): Likewise
2811         (cold_text_section_label): New static global variable.
2812         (cold_end_label): Likewise.
2813         (dwarf2out_switch_text_section): Get hot/cold section labels from
2814         the function struct rather than global variables; test to make sure
2815         cfun is defined.
2816         (output_aranges): Use cold_text_section_label and cold_end_label;
2817         check partitioning flag before putting out delta.
2818         (output_ranges): Remove incorrect code attempting to use
2819         hot/cold labels.
2820         (output_line_info): Get cold section label from function struct; test
2821         to make sure cfun is defined.
2822         (add_location_or_const_value_attribute): Likewise.
2823         (dwarf2out_var_location): Likewise.
2824         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2825         write out cold_text_section_label if partition flag is set.
2826         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2827         * function.h (struct function): Add new fields to point to hot/cold
2828         section labels: hot_section_label, cold_section_label,
2829         hot_section_end_label and cold_section_end_label; also add new field
2830         for cold text section name, unlikely_text_section_name.
2831         * opts.c (decode_options): Turn off partitioning flag if
2832         !targetm.have_named_sections.
2833         * output.h (hot_section_label): Remove.
2834         (hot_section_end_label): Remove.
2835         (cold_section_end_label): Remove.
2836         (unlikely_section_label): Remove.
2837         (unlikely_text_section_name): Remove.
2838         * passes.c (rest_of_handle_final):  Remove extra blank line.
2839         * varasm.c (unlikely_section_label): Remove.
2840         (hot_section_label): Remove.
2841         (hot_section_end_label): Remove.
2842         (cold_section_end_label): Remove.
2843         (unlikely_text_section_name):  Remove.
2844         (initialize_cold_section_name): Modify to call
2845         targetm.strip_name_encoding; to store cold section name in current
2846         function struct, if it exists; and to only use the decl_section_name
2847         if flag_named_sections is true.
2848         (unlikely_text_section): Modify to get section name out of current
2849         function struct, if there is one; otherwise build it from
2850         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2851         (in_unlikely_text_section): Likewise.
2852         (named_section): Modify to get/put cold section name in current function
2853         struct, if there is one.
2854         (function_section):  Change 'bool unlikely' to 'int reloc'; check
2855         targetm.have_named_sections before calling named_section.
2856         (current_function_section): Likewise.
2857         (assemble_start_function): Modify to get/put unlikely_text_section_name
2858         in current function struct; modify to get hot/cold section labels
2859         from function struct; initialize labels using
2860         ASM_GENERATE_INTERNAL_LABEL;
2861         test partitioning flag before writing out hot section label.
2862         (assemble_end_function): Test partitioning flag before writing out
2863         hot/cold section labels.
2864         (default_section_type_flags_1):  Get cold text section name from
2865         function struct if there is one; Set flags correctly for
2866         cold text section if there is not a current function struct.
2867
2868 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2869
2870         * tree-ssa-propagate.c (set_rhs): Revert last change.
2871
2872 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
2873
2874         * explow.c (convert_memory_address): Add gcc_assert.
2875
2876 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
2877
2878         * configure.ac: Check for ld --sysroot support.
2879         * gcc.c: Document %R specifier for specs.
2880         (SYSROOT_SPEC): New macro.
2881         (sysroot_spec): New variable.
2882         (static_specs): Add sysroot_spec.
2883         (main): Pass the sysroot spec to the linker if appropriate.
2884         * configure: Regenerated.
2885         * config.in: Likewise.
2886
2887 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2888
2889         * fold-const.c (fold_binary): Use build_fold_addr_expr
2890         for address calculation and INDIRECT_REF handling.
2891
2892 2005-04-27  Andrew Haley  <aph@redhat.com>
2893
2894         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2895
2896 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2897
2898         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
2899         pointer when thumb backtracing is on.
2900
2901         * config/fp-bit.c (abort): Revert change.
2902
2903 2005-04-27  Ian Lance Taylor  <ian@airs.com>
2904
2905         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2906
2907 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2908
2909         * tree-ssa-dce.c: Fix a comment typo.
2910
2911 2005-04-27  David S. Miller  <davem@davemloft.net>
2912
2913         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
2914         Kill setjmpless_size.  current_function_calls_setjmp is completely
2915         computed when we are called, so just use the optimized size value
2916         instead of using REG_SAVE_AREA notes.
2917         (optimize_save_area_alloca): Delete....
2918         * rtl.h (optimize_save_area_alloca): Likewise...
2919         * passes.c (rest_of_compilation): and don't call it any more.
2920         * reg-notes.def (SAVE_AREA): Delete.
2921
2922 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2923
2924         * config/fp-bit.c (abort): Add noreturn attribute.
2925
2926         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
2927         gcc_unreachable as appropriate.
2928         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
2929         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
2930         ASM_OUTPUT_REG_POP): Likewise.
2931
2932 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
2933
2934         * tree-complex.c (expand_vector_operations_1): Do not build
2935         VIEW_CONVERT_EXPR's for the lhs.
2936
2937 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2938
2939         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
2940         unnecessary noncanonical RTL handling.
2941         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
2942         gcc_assert and gcc_unreachable.
2943
2944         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
2945         gcc_unreachable as appropriate.
2946         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
2947         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
2948         use_return_insn, const_ok_for_op, arm_gen_constant,
2949         arm_canonicalize_comparison, legitimize_pic_address,
2950         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
2951         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
2952         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
2953         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
2954         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
2955         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
2956         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
2957         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
2958         output_call, output_mov_long_double_fpa_from_arm,
2959         output_mov_long_double_arm_from_fpa,
2960         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
2961         output_move_double, arithmetic_instr, shift_op, int_log2,
2962         output_return_instruction, arm_output_function_prologue,
2963         arm_output_epilogue, arm_output_function_epilogue,
2964         emit_multi_reg_push, arm_get_frame_offsets,
2965         arm_compute_initial_elimination_offset, arm_expand_prologue,
2966         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
2967         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
2968         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
2969         thumb_compute_initial_elimination_offset,
2970         thumb_output_function_prologue, thumb_load_double_from_address,
2971         thumb_output_move_mem_multiple, thumb_reload_out_hi,
2972         arm_emit_vector_const, arm_dbx_register_number): Likewise.
2973         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
2974         * config/arm/arm.md (thumb_extendhisi2,
2975         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
2976         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
2977         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
2978         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
2979         * config/arm/cirrus.md (*cirrus_arm_movdi,
2980         *cirrus_movdf_hard_insn): Likewise.
2981         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2982
2983 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2984
2985         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
2986         (num_ssa_names): Use VEC_length.
2987         (ssa_names): Use VEC_index.
2988         * tree-ssanames.c (ssa_names): Change the type to
2989         VEC(tree,gc).
2990         (init_ssanames, fini_ssa_names, make_ssanames,
2991         release_ssa_name): Update uses of ssa_names.
2992
2993         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
2994         Use fold_buildN instead of fold (buildN (...)).
2995
2996 2005-04-27  Devang Patel <dpatel@apple.com>
2997
2998         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2999
3000 2005-04-27  Matt Thomas <matt@3am-software.com>
3001             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
3002
3003         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
3004         (vax_output_mi_thunk): Ditto.
3005         (vax_notice_cc_update): Ditto.
3006         (INDEX_REGISTER_P): Add trailing \.
3007         (BASE_REGISTER_P): Add trailing \.
3008         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
3009
3010 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3011
3012         * tree-ssa-propagate.c (set_rhs): Check operand of
3013         ADDR_EXPR for gimpliness, too.
3014
3015 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3016
3017         * tree-ssa-pre.c: Fix a comment typo.
3018
3019 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
3020
3021         PR tree-optimization/21171
3022         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
3023         record address uses if the reference is volatile.
3024
3025 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
3026
3027         * tree-complex.c (expand_vector_operation): New, extracted from
3028         expand_vector_operations_1.
3029         (tree_vec_extract): Build a NOP_EXPR.
3030         (expand_vec_parallel): Do not care about returning the correct type.
3031         (expand_vector_operations_1): Call expand_vector_operation.
3032         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
3033
3034         * tree-complex.c (gate_expand_vector_operations): New.
3035         (pass_lower_vector_ssa): Use it.
3036         * tree-optimize.c (init_tree_optimization_passes): Include
3037         pass_lower_vector_ssa.
3038         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
3039         (vectorizable_operation): Use it.
3040         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
3041         integer modes for the vector type.
3042
3043         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3044         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
3045         Do not cope with UNITS_PER_SIMD_WORD == 0.
3046         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
3047         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
3048         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
3049         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3050         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3051         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3052         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3053
3054         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
3055         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
3056         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
3057
3058         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
3059         (UNITS_PER_SIMD_WORD): New.
3060
3061 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3062
3063         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
3064         gcc_unreachable as appropriate.
3065         (ia64_expand_load_address, ia64_expand_tls_address,
3066         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
3067         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
3068         next_scratch_gr_reg, ia64_initial_elimination_offset,
3069         ia64_expand_prologue, ia64_expand_epilogue,
3070         ia64_output_dwarf_dtprel, ia64_print_operand,
3071         ia64_register_move_cost, first_instruction, rws_access_regno,
3072         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
3073         ia64_sched_init, ia64_variable_issue,
3074         ia64_first_cycle_multipass_dfs_lookahead_guard,
3075         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
3076         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
3077         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
3078         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
3079         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3080         * config/ia64/predicates.md (got_symbolic_operand,
3081         sdata_symbolic_operand): Likewise.
3082         * config/ia64/vect.md (vcondv2sf): Likewise.
3083
3084 2005-04-27  Matt Thomas <matt@3am-software.com>
3085
3086         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
3087         CONSTANT_ADDRESS_P in config/vax/vax.h
3088         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
3089         (INDEX_REGISTER_P): New.
3090         (BASE_REGISTER_P): New.
3091         (indirectable_constant_address_p): New.  Adapted from
3092         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
3093         (indirectable_address_p): New.  Adapted from
3094         INDIRECTABLE_ADDRESS_P in vax.h.
3095         (nonindexed_address_p): New.  Adapted from
3096         GO_IF_NONINDEXED_ADDRESS in vax.h.
3097         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
3098         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
3099         (legitimate_address_p): New.  Adapted from
3100         GO_IF_LEGITIMATE_ADDRESS in vax.h.
3101         (vax_mode_dependent_address_p): New.  Adapted from
3102         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
3103         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
3104         legitimate_constant_address_p.
3105         (CONSTANT_P): Use legitimate_constant_p.
3106         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
3107         (INDIRECTABLE_ADDRESS_P): Removed.
3108         (GO_IF_NONINDEXED_ADDRESS): Removed.
3109         (INDEX_TEMP_P): Removed.
3110         (GO_IF_REG_PLUS_INDEX): Removed.
3111         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
3112         definitions, depending on whether REG_OK_STRICT is defined.
3113         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
3114         Two definitions, depending on whether REG_OK_STRICT is defined.
3115         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
3116         added.
3117         (legitimate_constant_p): Prototype added.
3118         (legitimate_address_p): Prototype added.
3119         (vax_mode_dependent_address_p): Prototype added.
3120
3121 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3122
3123         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
3124
3125 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3126
3127         PR c/21213
3128         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
3129         transparent union.
3130
3131 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3132
3133         PR c/20740
3134         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
3135         assertion failures, if __gcc_host_wide_int__ is not properly
3136         defined.
3137         (init_dynamic_diag_info): Give errors, not assertion failures, if
3138         location_t, tree or __gcc_host_wide_int__ are not properly
3139         defined.
3140
3141 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3142
3143         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
3144         n_iv_uses, iv_use, n_iv_cands, iv_cand,
3145         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
3146         prepare_decl_rtl, free_loop_data,
3147         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
3148         VARRAY.
3149
3150         * tree.h (tree_phi_node): Add a comment about the order of PHI
3151         arguments.
3152
3153 2005-04-26  Paul Brook  <paul@codesourcery.com>
3154
3155         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
3156
3157 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
3158
3159         * config/mips.mips.c (mips_legitimize_tls_address): Use
3160         gcc_unreachable.
3161
3162         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
3163         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
3164         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
3165
3166         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
3167         'abort'.
3168
3169 2005-04-26  Jeff Law  <law@redhat.com>
3170
3171         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
3172         (op_iter_init_must_and_may_def): Likewise.
3173         (unmodifiable_var_p): Move to a later point in the file.
3174         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
3175         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
3176         (dse_record_phis): Directly check for virtual operands rather than
3177         using need_imm_uses_for.
3178         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
3179         store has multiple V_{MAY,MUST}_DEF operands.
3180
3181 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
3182
3183         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
3184         stmt.
3185
3186 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3187
3188         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
3189         call to find_edge outside a loop to go through a PHI chain.
3190
3191 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
3192
3193         PR tree-optimization/17598
3194         * fold-const.c (fold_binary): Fold comparisons of addresses
3195         of COMPONENT_REFs which reference the same field to
3196         comparisons of the addresses of the base objects.
3197
3198 2005-04-26  Julian Brown  <julian@codesourcery.com>
3199
3200         * config/arm/arm.c (arm_return_in_msb): New function.
3201         (arm_must_pass_in_stack): New function.
3202         (TARGET_RETURN_IN_MSB): Define target hook.
3203         (TARGET_MUST_PASS_IN_STACK): Define target hook.
3204         (arm_function_value): Pad small aggregate return.
3205         (arm_pad_arg_upward): New function.
3206         (arm_pad_reg_upward): New function.
3207         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
3208         (FUNCTION_ARG_PADDING): Define macro.
3209         (BLOCK_REG_PADDING): Define macro.
3210         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
3211         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
3212         (arm_pad_reg_upward): Declare function.
3213
3214 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3215
3216         * basic-block.h (ei_cond): New.
3217         (FOR_EACH_EDGE): Call ei_cond.
3218
3219         PR tree-optimization/21047
3220         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
3221         (fold): Don't handle ASSERT_EXPR.
3222
3223 2005-04-25  Roger Sayle  <roger@eyesopen.com>
3224
3225         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
3226         all writes to any stack register as a read/write dependency on
3227         FIRST_STACK_REG.
3228         (sched_analyze_2): Likewise, for reads from any stack register.
3229
3230 2005-04-25  Richard Henderson  <rth@redhat.com>
3231
3232         * final.c (output_addr_const): Revert 2005-04-09 change.
3233
3234 2005-04-25  Mike Stump  <mrs@apple.com>
3235
3236         * config/darwin.c (darwin_encode_section_info): Always set
3237         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
3238
3239 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3240
3241         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
3242         gensupport.c, protoize.c, toplev.c: Replace calls to
3243         `unlock_stream' with `unlock_std_streams'.
3244
3245 2005-04-25  Devang Patel <dpatel@apple.com>
3246
3247         * dbxout.c (dbxout_type): Emit attribute vector.
3248
3249 2005-04-05  Paul Brook  <paul@codesourcery.com>
3250
3251         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
3252         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
3253         * config/arm/arm.c (arm_cxx_atexit_name): New function.
3254         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
3255         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
3256         (register_dtor_fn): Likewise.
3257         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
3258
3259 2005-04-25  Ian Lance Taylor  <ian@airs.com>
3260
3261         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
3262         * c-common.h (EXPR_STMT_EXPR): Don't define.
3263         (c_common_stmt_codes): Don't define.
3264         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
3265         * c-gimplify.c (gimplify_expr_stmt): Remove.
3266         (c_gimplify_expr): Remove EXPR_STMT case.
3267         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
3268         to INIT_STATEMENT_CODES.
3269         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
3270
3271 2005-04-25  Jan Hubicka  <jh@suse.cz>
3272
3273         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
3274
3275         * except.c: Include diagnostic.h
3276         (dump_eh_tree, verify_eh_tree): New functions.
3277         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
3278         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
3279         (dump_function_to_file): dump eh tree.
3280         * tree-eh.c (mark_eh_edge): New function.
3281         (mark_eh_edge_found_error): New static variable.
3282         (verify_eh_edges): New function.
3283
3284 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
3285
3286         * tree-ssa-alias.c (fieldoff_t): Remove.
3287         (fieldoff_s): typedef the structure itself.  Create a vector of
3288         objects.
3289         (push_fields_onto_fieldstack): Return count of fields pushed.
3290         Remove peeling of first field.  Adjust.
3291         (fieldoff_compare): Adjust.
3292         (create_overlap_variables_for): Adjust.
3293
3294 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3295
3296         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
3297
3298 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3299
3300         PR bootstrap/21215
3301         * doc/install.texi: Document correct assembler and linker to use
3302         on i?86-*-solaris2.10.
3303
3304 2005-04-25  Steven Bosscher  <stevenb@suse.de>
3305
3306         Fix PR tree-optimization/21173
3307
3308         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
3309         Unshare expression we pass to force_gimple_operand.
3310
3311 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
3312             Stephen Clarke <stevec@superh.com>
3313             Roger Sayle <roger@eyesopen.com>
3314
3315         PR rtl-optimization/20413
3316         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
3317         VOIDmode for LABEL_REF.
3318         * final.c (shorten_branches): Likewise.
3319         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
3320         * loop.c (reg_dead_after_loop): Likewise.
3321         * varasm.c (decode_addr_const): Likewise.
3322         * doc/rtl.texi: Document mode requirement for LABEL_REF.
3323
3324 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
3325
3326         * config.gcc (avr-*-*): Remove redundant "case".
3327
3328 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
3329
3330         * tree-vect-analyze.c (vect_mark_relevant): Take
3331         VEC(tree,heap) instead of varray_type as an argument.
3332         (vect_mark_stmts_to_be_vectorized): Change the type of
3333         worklist to VEC(tree,heap).  Adjust uses of worklist.
3334
3335 2005-04-24  Devang Patel  <dpatel@apple.com>
3336
3337         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
3338
3339 2005-04-24  Ian Lance Taylor  <ian@airs.com>
3340
3341         * c-semantics.c (build_stmt): Remove test of specific tree codes
3342         for TREE_SIDE_EFFECTS handling.
3343
3344 2005-04-24  Per Bothner  <per@bothner.com>
3345
3346         * c-opts.c (finish_options):  Make the line-number of the <built-in>
3347         location 0, as assumed elsewhere, rather than 1.
3348
3349 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3350
3351         * tree-ssa-uncprop.c (equiv_stack): Change the type o
3352         VEC(tree,heap).
3353         (tree_ssa_uncprop, uncprop_finalize_block,
3354         uncprop_initialize_block): Update uses of equiv_stack.
3355
3356 2005-04-24  Richard Henderson  <rth@redhat.com>
3357
3358         PR rtl-opt/21163
3359         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
3360         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
3361         constm1_rtx.
3362         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
3363         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
3364         <DIV, MOD>: Likewise.
3365
3366 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3367
3368         * collect2.c (main): Unlock the stdio streams.
3369         * gcc.c (main): Likewise.
3370         * gcov-dump.c (main): Likewise.
3371         * gcov.c (main): Likewise.
3372         * gen-protos.c (main): Likewise.
3373         * gensupport.c (init_md_reader_args_cb): Likewise.
3374         * protoize.c (main): Likewise.
3375         * toplev.c (general_init): Likewise.
3376
3377 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
3378
3379         PR middle-end/20991
3380         * cgraph.h (cgraph_local_info): Add vtable_method field.
3381         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
3382         and node is vtable_method, finalized and not reachable, don't do
3383         anything.
3384
3385 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3386
3387         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
3388         COMPARISON_CLASS_P.
3389         * tree-ssa-pre.c (create_value_expr_from): Use
3390         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
3391         * tree-ssa-propagate.c (stmt_makes_single_load,
3392         stmt_makes_single_store): Use REFERENCE_CLASS_P.
3393         * tree-vec