OSDN Git Service

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