OSDN Git Service

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