OSDN Git Service

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