OSDN Git Service

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