OSDN Git Service

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