OSDN Git Service

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