OSDN Git Service

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