OSDN Git Service

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