OSDN Git Service

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