OSDN Git Service

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