OSDN Git Service

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