OSDN Git Service

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