OSDN Git Service

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