OSDN Git Service

2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
[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,
3950         tree_one_value_profiler_fn): New variables.
3951         (tree_init_edge_profiler): Initialize the profiler function decls.
3952         (tree_gen_edge_profiler): Use global gcov_type_node.
3953         (prepare_instrumented_value): New function.
3954         (tree_gen_interval_profiler, tree_gen_interval_profiler,
3955         tree_gen_one_value_profiler): Call the library functions instead of
3956         creating instrumentation code.
3957         * tree.c (build_fn_decl): New function.
3958         * tree.h (build_fn_decl): Declare.
3959         * value-prof.c (rtl_divmod_values_to_profile,
3960         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
3961         tree_mod_pow2_value_transform, tree_find_values_to_profile):
3962         Do not handle may_be_other and precise values of exponents at pow2
3963         profiler.
3964         (tree_mod_subtract_transform): Reflect that value field of
3965         histogram has changed meaning.
3966         (tree_divmod_values_to_profile): Record the values correctly.
3967         (tree_values_to_profile): Update comment.
3968         * value-prof.h (struct histogram_value_t): Remove pow2 data.
3969
3970 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
3971
3972         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
3973         (decl).
3974
3975 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3976
3977         * config/i386/i386.md (length_immediate): Use gcc_assert or
3978         gcc_unreachable, as appropriate.
3979         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
3980         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
3981         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
3982         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
3983         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3984         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
3985         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
3986         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
3987         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
3988         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
3989         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
3990         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3991         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
3992         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
3993         *prefetch_sse_rex): Likewise.
3994         * config/i386/predicates.md (x86_64_immediate_operand,
3995         x86_64_zext_immediate_operand, symbolic_operand,
3996         no_seg_address_operand, aligned_operand,
3997         memory_displacement_operand): Likewise.
3998         * config/i386/sse.md (*mov<mode>_internal,
3999         *movv2df_internal): Likewise.
4000
4001 2005-04-22  Jan Hubicka  <jh@suse.cz>
4002
4003         * Makefile.in (ipa.o, ipa-inline.o): New files.
4004         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
4005         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
4006         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
4007         * cgraphunit.c (cgraph_default_inline_p,
4008         cgraph_decide_inlining_incrementally,  ncalls_inlined,
4009         nfunctions_inlined, initial_insns, overall_insns,
4010         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
4011         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4012         cgraph_mark_inline, cgraph_check_inline_limits,
4013         cgraph_default_inline_p, cgraph_recursive_inlining_p,
4014         update_callee_keys, lookup_recursive_calls,
4015         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
4016         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
4017         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
4018         pass_ipa_inline): Move to ipa-inline.c
4019         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
4020         * ipa.c: New file.
4021         * ipa-inline.c: New file.
4022
4023 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4024
4025         * doc/invoke.texi (SPARC options): Document that -mapp-regs
4026         is turned off by default on Solaris.
4027
4028 2005-04-21  Roger Sayle  <roger@eyesopen.com>
4029
4030         * c-common.h (objc_build_method_signature): Update prototype.
4031         * stub-objc.c (objc_build_method_signature): Update the stub
4032         implementation to accept and ignore additional parameter.
4033         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
4034         the value of ellipsis to objc_build_method_signature instead
4035         of setting TREE_OVERFLOW on the parms TREE_LIST node.
4036
4037 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
4038
4039         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
4040         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
4041         gen_rtx_* not gen_rtx_fmt_*.
4042         (rs6000_emit_vector_select): Likewise.
4043         (rs6000_emit_sync): New.
4044         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
4045         (larx, stcx, cmp): New mode substitutions.
4046         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
4047         UNSPEC_ISYNC): New constants.
4048         (rlwinm): Give name.
4049         (memory_barrier, isync, lwsync): New insns.
4050         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
4051         (sync_lock_release<mode>): New expander.
4052         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
4053         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
4054         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
4055         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
4056         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
4057         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
4058         (sync_add<mode>_internal, sync_addshort_internal,
4059         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
4060         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
4061         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
4062
4063         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
4064         is the memory before, not after, the operation.  Clarify
4065         barrier requirements.
4066
4067 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
4068
4069         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
4070         * lambda.h (lambda_vector_min_nz): Likewise.
4071         * langhooks.h (struct lang_hooks_for_types,
4072         struct lang_hooks): Likewise.
4073         * output.h (assemble_integer, this_is_asm_operands): Likewise.
4074         * tree.h: Likewise.
4075         * vec.h: Likewise.
4076         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
4077
4078         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
4079         comments to avoid 'abort'.  Use gcc_assert as necessary.
4080         * opts.c (common_handle_option): Likewise.
4081         * pretty-print.c (pp_base_format_text): Likewise.
4082         * print-rtl.c (print_rtx): Likewise.
4083         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
4084         * regmove.c (try_auto_increment): Likewise.
4085         * reload.c (find_valid_class, find_reloads_toplev,
4086         find_equiv_reg): Likewise.
4087         * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
4088         merge_assigned_reloads): Likewise.
4089         * tree-inline.c (inline_forbidden_p_1,
4090         estimate_num_insns_1): Likewise.
4091         * tree-optimize.c (execute_todo): Likewise.
4092         * tree-outof-ssa.c (eliminate_phi): Likewise.
4093         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
4094         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
4095         * tree-ssa-operands.c (parse_ssa_operands,
4096         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
4097         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
4098         * tree-ssanames.c (release_ssa_name): Likewise.
4099         * tree.c (int_bit_position, int_byte_position, tree_low_cst,
4100         walk_tree): Likewise.
4101
4102         * tree-ssa-operands.c (verify_abort): Fold into ..
4103         (verify_imm_links): ... here.
4104
4105 2005-04-21  Richard Henderson  <rth@redhat.com>
4106
4107         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
4108         on non-memory operand for previous inversion.
4109
4110 2005-04-21  Devang Patel  <dpatel@apple.com>
4111
4112         PR optimization/20994
4113         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
4114         x = !(a == b) : p , q;.
4115         (pass_if_conversion): Verify stmts and flow.
4116
4117 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
4118
4119         * optabs.c (gen_conditional_trap): Restore #define.
4120
4121         * alias.c (true_dependence): Remove 'abort' from comments. Use
4122         gcc_assert and gcc_unreachable as appropriate.
4123         (canon_true_dependence): Likewise.
4124         * bb-reorder.c (connect_traces): Likewise.
4125         * c-common.c (c_add_case_label): Likewise.
4126         * c-decl.c (finish_function): Likewise.
4127         * caller-save.c (insert_restore, insert_save): Likewise.
4128         * cfg.c (update_bb_profile_for_threading): Likewise.
4129         * cfganal.c (flow_active_insn_p): Likewise.
4130         * cfgexpand.c (add_reg_br_prob_note): Likewise.
4131         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
4132         cfg_layout_merge_blocks): Likewise.
4133         * ifcvt.c (cond_exec_process_insns, merge_if_block,
4134         find_if_block): Likewise.
4135         * integrate.c (allocate_initial_values): Likewise.
4136         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
4137         swap_condition, unsigned_condition, signed_condition,
4138         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
4139         reg_or_subregno): Likewise.
4140         * lambda-code.c (lambda_compute_auxillary_space,
4141         lambda_transform_legal_p): Likewise.
4142         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
4143         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
4144         lhd_incomplete_type_error, lhd_expand_expr,
4145         lhd_types_compatible_p, lhd_tree_size): Likewise.
4146         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
4147         * local-alloc.c (update_equiv_regs): Likewise.
4148         * loop-unroll.c (peel_loop_completely
4149         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
4150         peel_loop_simple, unroll_loop_stupid,
4151         analyze_iv_to_split_insn): Likewise.
4152         * loop.c (gen_prefetch, find_and_verify_loops,
4153         basic_induction_var): Likewise.
4154         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
4155         * value-prof.c (tree_find_values_to_profile): Likewise.
4156         * varasm.c (named_section, default_assemble_integer,
4157         decode_addr_const): Likewise.
4158
4159 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
4160            Fariborz Jahanian <fjahanian@apple.com>
4161
4162         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
4163         portion of argument passed in fpr.
4164         * expr.c (emit_push_insn): Fix computation of 'offset' used to
4165         decide on partial argument save on stack.
4166
4167 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
4168
4169         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
4170         comment typos.
4171
4172 2005-04-21  Jan Hubicka  <jh@suse.cz>
4173
4174         * cgraphunit.c: Include tree-pass.h
4175         (cgraph_decide_recursive_inlining,
4176         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
4177         cgraph_decide_inlining): Dump goes to dump_file.
4178         (cgraph_optimize): Call ipa passes instead of inliner.
4179         (cgraph_gate_inlining, pass_ipa_inline): New.
4180         * tree-optimize.c (all_ipa_passes): New static variable.
4181         (register_one_dump_file): Dead with IPA passes.
4182         (register_dump_files): Likewise.
4183         (init_tree_optimization_passes): Initialize IPA passes.
4184         (execute_todo): Do cgraph dump when asked to, do not dump function body
4185         for IPA pass.
4186         * tree-pass.h (TODO_dump_cgraph): New macro.
4187         (ipa_passes): Declare.
4188         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
4189
4190 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
4191
4192         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
4193         gcc_assert instead of abort.
4194         (classify_argument, examine_argument, construct_container,
4195         contains_128bit_aligned_vector_p, ix86_check_movabs,
4196         standard_80387_constant_opcode, standard_80387_constant_rtx,
4197         ix86_initial_elimination_offset, ix86_compute_frame_layout,
4198         pro_epilogue_adjust_stack, ix86_expand_epilogue,
4199         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
4200         legitimize_tls_address, output_pic_addr_const,
4201         i386_output_dwarf_dtprel, put_condition_code, print_reg,
4202         get_some_local_dynamic_name, print_operand, print_operand_address,
4203         output_387_binary_op, emit_i387_cw_initialization,
4204         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
4205         ix86_expand_clear, ix86_expand_binary_operator,
4206         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
4207         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
4208         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
4209         ix86_expand_branch, ix86_expand_setcc,
4210         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
4211         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
4212         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
4213         memory_address_length, ix86_attr_length_immediate_default,
4214         ix86_attr_length_address_default, ix86_agi_dependant,
4215         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
4216         ix86_expand_binop_builtin, ix86_force_to_memory,
4217         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
4218         x86_emit_floatuns): Likewise.
4219         * config/i386/netware.c (gen_regparm_prefix,
4220         i386_nlm_strip_name_encoding): Likewise.
4221         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
4222
4223 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
4224
4225         * optabs.c (gen_condiational_trap): Remove #define.
4226         (add_equal_note): Assertify. Remove explicit indirection from
4227         call via function pointer.
4228         (expand_ternary_op, expand_simple_binop, expand_binop,
4229         expand_twoval_unop, expand_twoval_binop,
4230         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
4231         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
4232         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
4233         prepare_float_lib_cmp, emit_conditional_move,
4234         emit_conditional_add, gen_add2_insn, gen_add3_insn,
4235         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
4236         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
4237         vector_compare_rtx, expand_vec_cond_expr): Likewise.
4238
4239 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
4240
4241         * vec.h: Update API to separate allocation mechanism from type.
4242         (VEC_safe_grow): New.
4243         * vec.c (calculate_allocation): New.
4244         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
4245         (vec_gc_free, vec_heap_free): Remove.
4246         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
4247         (VEC): Likewise.
4248         (mangle_macro_name): New.
4249         (struct macro_def): New.
4250         (struct macro): Add multiple argument values.
4251         (macro_expans_end): New.
4252         (push_macro_expansion):  Chain on new macro. Process multiple
4253         args, create follow on expansion. Return follow on argument.
4254         (macro_input): Deal with multiple arguments.
4255
4256         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
4257         (struct tree_binfo): Adjust.
4258         * basic-block.h: Define VEC(edge,gc).
4259         (struct edge_def): Adjust.
4260         (struct basic_block_def, struct edge_iterator): Likewise.
4261         (ei_container, ei_start_1, ei_last_1): Likewise.
4262         * cfg.c (connect_src, connect_dest): Likewise.
4263         * cfgrtl.c (force_nonfallthru_and_redirect)
4264         * dbxout.c (dbxout_type)
4265         * dwarf2out.c (gen_member_die)
4266         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
4267         (gcc_tree_to_linear_expression): Adjust.
4268         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
4269         lbv_to_gcc_expression, lle_to_gcc_expression,
4270         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
4271         perfect_nestify): Likewise.
4272         * lambda.h (gcc_loopnest_to_lambda_loopnest,
4273         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
4274         * profile.c (instrument_values): Adjust.
4275         * tree-cfg.c (modified_noreturn_calls): Adjust.
4276         (remove_fallthru_edge): Likewise.
4277         * tree-dump.c (dequeue_and_dump): Adjust.
4278         * tree-flow-inline.h (mark_stmt_modified): Adjust.
4279         * tree-flow.h (modified_noreturn_calls): Adjust.
4280         (tree_on_heap): Remove. (yay!)
4281         (register_new_def): Adjust.
4282         * tree-into-ssa.c: Define VEC(int,heap).
4283         (block_defs_stack): Adjust.
4284         (find_idf, insert_phi_nodes, register_new_def,
4285         rewrite_initialize_block, rewrite_finalize_block,
4286         register_new_update_single, rewrite_update_init_block,
4287         rewrite_update_fini_block, rewrite_blocks,
4288         ssa_rewrite_finalize_block, ssa_register_new_def,
4289         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
4290         * tree-loop-linear.c (linear_transform_loops): Adjust.
4291         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
4292         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
4293         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
4294         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
4295         vrp_variables_stack): Adjust declarations.
4296         (tree_ssa_dominator_optimize): Adjust.
4297         (dom_opt_initialize_block, remove_local_expressions_from_table,
4298         restore_nonzero_vars_to_original_value,
4299         restore_vars_to_original_value,
4300         restore_currdefs_to_original_value, dom_opt_finalize_block,
4301         record_var_is_nonzero, record_cond, record_const_or_copy_1,
4302         optimize_stmt, update_rhs_and_lookup_avail_expr,
4303         lookup_avail_expr, record_range): Likewise.
4304         * tree-ssa-pre.c: Define VEC(basic_block,heap).
4305         (compute_antic_aux): Adjust.
4306         (inserted_exprs, create_expression_by_pieces,
4307         insert_into_preds_of_block, eliminate, mark_operand_necessary,
4308         remove_dead_inserted_code, fini_pre): Likewise.
4309         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
4310         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
4311         ssa_prop_init): Likewise.
4312         * tree-ssa.c: Define VEC(bitmap,heap).
4313         (verify_name_tags): Adjust.
4314         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
4315         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
4316         tree_divmod_values_to_profile, tree_find_values_to_profile,
4317         value_profile_transformations): Likewise.
4318         * value-prof.h: Define VEC(histogram_value,heap).
4319         * varasm.c: Remove alias_pair pointer typedef, define
4320         VEC(alias_pair,gc).
4321         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
4322
4323         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
4324         not a pointer to it.  Create an object vector.
4325         (extern_symbols): Turn into an object vector.
4326         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
4327
4328 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
4329
4330         PR/20742
4331         * Makefile.in (tree-chrec.o): Depend on params.h.
4332         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
4333         default value 20.
4334         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
4335         and fold build with fold_buildN.
4336         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
4337         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
4338         (tree_contains_chrecs): Compute an estimation of the size of the
4339         given expression.
4340         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
4341         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
4342         * tree-scalar-evolution.c (simple_iv): Ditto.
4343         * doc/invoke.texi (scev-max-expr-size): Documented.
4344
4345 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
4346
4347         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
4348         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
4349         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
4350         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
4351         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
4352         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
4353         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
4354         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
4355         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
4356         (darwin_fix_and_continue_switch): Delete.
4357         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
4358         (SUBTARGET_SWITCHES): Delete.
4359         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
4360         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
4361         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
4362         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
4363         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
4364         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
4365         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
4366         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
4367         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
4368         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
4369         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
4370         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
4371         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
4372         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
4373         (TARGET_64BIT): Undef before redefining.
4374         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
4375         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
4376         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
4377         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
4378         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
4379         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
4380         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
4381         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
4382         (ix86_debug_arg_string, ix86_debug_addr_string)
4383         (ix86_align_loops_string, ix86_align_jumps_string)
4384         (ix86_align_funcs_string): Delete.
4385         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
4386         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
4387         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
4388         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
4389         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
4390         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
4391         (SUBTARGET_SWITCHES): Delete.
4392         * config/i386/i386.c (ix86_debug_arg_string): Delete.
4393         (ix86_debug_addr_string): Delete.
4394         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
4395         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
4396         (ix86_align_loops_string, ix86_align_jumps_string)
4397         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
4398         (ix86_align_funcs_string): Make static.
4399         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4400         (ix86_handle_option): New function.
4401         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
4402         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
4403         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
4404         of darwin_fix_and_continue_switch.
4405         (darwin_one_byte_bool): Delete.
4406         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
4407         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
4408         to darwin_one_byte_bool.
4409         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
4410         * config/i386/djgpp.opt, config/i386/i386.opt,
4411         * config/i386/sco5.opt: New files.
4412
4413 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4414
4415         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
4416         fp_zero_operand, fp_register_operand, intreg_operand,
4417         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
4418         call_operand, call_operand_address, tgd_symbolic_operand,
4419         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
4420         symbolic_operand, symbolic_memory_operand, label_ref_operand,
4421         sp64_medium_pic_operand, data_segment_operand,
4422         text_segment_operand, splittable_symbolic_memory_operand,
4423         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
4424         eq_or_neq, normal_comp_operator, noov_compare_op,
4425         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
4426         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
4427         const64_operand, const64_high_operand, arith11_operand,
4428         arith10_operand, arith_double_operand, arith_double_4096_operand,
4429         arith_double_add_operand, arith11_double_operand,
4430         arith10_double_operand, small_int, small_int_or_double,
4431         uns_small_int, uns_arith_operand, clobbered_register,
4432         input_operand, compare_operand): Delete.
4433         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
4434         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
4435         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
4436         (GEN_HIGHINT64, GEN_INT64): Delete.
4437         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
4438         gen_safe_XOR64): Adjust for above deletion.
4439         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
4440         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
4441         (legitimate_constant_p): Use const_zero_operand instead.
4442         (sparc_extra_constraint_check): Likewise.
4443         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
4444         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
4445         (PREDICATE_CODES): Delete.
4446         * config/sparc/sparc.md: Include predicates.md.
4447         (All patterns): Adjust for new predicate names.
4448         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
4449         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
4450         (movdi): Use general_operand predicate.
4451         (movdi_sp64_dbl): Delete.
4452         (movdi_const64_special): Add 'N' constraint.
4453         (movdicc): Use arith10_operand predicate.
4454         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
4455         (movdi_cc_reg_sp64): Use arith10_operand predicate.
4456         (movdi_cc_reg_sp64_trunc): Delete.
4457         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
4458         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
4459         (subdi3_sp32): Delete.
4460         (subdi3_insn_sp32): Change to define_insn_and_split.
4461         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
4462         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
4463         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
4464         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
4465         small_int_operand predicate.
4466         (divdi3, udivdi3): Use arith_operand predicate.
4467         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
4468         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
4469         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
4470         (xordi3_sp64_dbl): Delete.
4471         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
4472         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
4473         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
4474         cmp_ccx_set_not): Use arith_operand predicate.
4475         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
4476         * config/sparc/predicates.md: New file.
4477
4478 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
4479
4480         PR tree-optimization/14846
4481         * fold-const.c (fold_single_bit_test_into_sign_test): New,
4482         split out from ...
4483         (fold_single_bit_test): ... here.
4484         (fold_binary): Call fold_single_bit_test_into_sign_test
4485         instead of fold_single_bit_test.
4486
4487 2005-04-20  James E Wilson  <wilson@specifixinc.com>
4488
4489         PR c++/20805
4490         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
4491         is another declaration.
4492
4493 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
4494
4495         * config/cris/predicates.md: New file.
4496         * config/cris/cris-protos.h (cris_store_multiple_op_p)
4497         (cris_movem_load_rest_p): Declare.
4498         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
4499         (cris_movem_load_rest_p): Ditto.  Globalize.
4500         (cris_bdap_operand, cris_bdap_biap_operand,
4501         cris_orthogonal_operator, cris_commutative_orth_op,
4502         cris_operand_extend_operator,
4503         cris_additive_operand_extend_operator, cris_extend_operator,
4504         cris_plus_or_bound_operator, cris_mem_op,
4505         cris_general_operand_or_symbol,
4506         cris_general_operand_or_gotless_symbol,
4507         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
4508         cris_load_multiple_op): Remove predicate functions.
4509         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
4510         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
4511         * config/cris/cris.h (PREDICATE_CODES): Don't define.
4512         * config/cris/cris.md: Include predicates.md.
4513         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
4514
4515 2005-04-20  Ian Lance Taylor  <ian@airs.com>
4516
4517         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
4518         * c-common.h (STMT_EXPR_STMT): Don't define.
4519         (STMT_EXPR_NO_SCOPE): Don't define.
4520         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
4521         * c-pretty-print.c (pp_c_primary_expression): Likewise.
4522         (pp_c_expression): Likewise.
4523
4524 2005-04-20  Richard Henderson  <rth@redhat.com>
4525
4526         PR target/21100
4527         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
4528
4529 2005-04-20  Jeff Law  <law@redhat.com>
4530
4531         * reload1.c (reload): Ignore equivalences between pseudos and
4532         read only memory.
4533
4534 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
4535
4536         PR c/12913
4537         * c-tree.h (struct c_label_list): Update comment.
4538         (struct c_label_context): Rename to struct c_label_context_se.
4539         (label_context_stack): Rename to label_context_stack_se.
4540         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
4541         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
4542         c_end_vm_scope): New.
4543         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
4544         * c-decl.c (pop_scope): Call c_end_vm_scope.
4545         (pushdecl): Call c_begin_vm_scope for variably modified
4546         declarations.
4547         (define_label): Check for jumping into scope of identifier with
4548         variably modified type.  Push label on stack for those defined at
4549         current context of identifiers with variably modified type.
4550         (start_function): Create stack level for context of identifiers
4551         with variably modified type.
4552         (finish_function): Pop stack level for context of identifiers with
4553         variably modified type.
4554         * c-typeck.c (label_context_stack): Rename to
4555         label_context_stack_se.
4556         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
4557         (c_finish_goto_label): Check for jumping into scope of identifier
4558         with variably modified type.  Push label on stack for those jumped
4559         to from current context of identifiers with variably modified
4560         type.
4561         (struct c_switch): Add blocked_vm.
4562         (c_start_case): Initialize blocked_vm.
4563         (do_case): Check blocked_vm.
4564         (c_finish_case): Add comment.
4565         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
4566         variable label_context_stack.
4567
4568 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
4569
4570         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
4571         conditional_replacement, value_replacement, abs_replacement,
4572         minmax_replacement.
4573         (replace_phi_edge_with_variable): Remove argument BB.
4574         (conditional_replacement, value_replacement,
4575         minmax_replacement, abs_replacement): Remove argument PHI_BB.
4576         Update a call to replace_phi_edge_with_variable.
4577
4578         * tree-ssa-phiopt.c: Fix comments.
4579
4580 2005-04-20  Michael Matz  <matz@suse.de>
4581
4582         PR20973
4583         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
4584         pseudos.
4585
4586 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
4587
4588         * tree-ssa-phiopt.c: Fix comment typos.
4589
4590         PR tree-optimization/21116
4591         * tree-ssa-phiopt.c: Fix a typo.
4592
4593 2005-04-19  Richard Henderson  <rth@redhat.com>
4594
4595         * builtins.c (expand_builtin_sync_operation): Revert last change.
4596         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
4597         not vs new value.
4598         (expand_compare_and_swap_loop): Likewise.
4599         (expand_sync_operation): Remove fallback from NAND to AND; invert
4600         memory operand when expanding from cmpxchg.
4601         (expand_sync_fetch_operation): Likewise.
4602         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
4603         compare-and-swap.
4604
4605         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
4606         when implementing NAND.  Fix double-add for AFTER.
4607         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
4608         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
4609         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
4610         memory value.
4611         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
4612         memory barrier.
4613
4614         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
4615         to return old memory value.
4616         (sync_compare_and_swap_cc<IMODE>): Likewise.
4617
4618         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
4619         return pre-reload.  Don't consider output or anti dependencies.
4620         * config/ia64/sync.md (IMODE): New.
4621         (modesuffix): Add QI and HI.
4622         (memory_barrier): Simplify expansion.
4623         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
4624         (cmpxchg_acq_<IMODE>): Likewise.
4625         (sync_lock_test_and_set<IMODE>): Likewise.
4626         (sync_lock_release<IMODE>): Likewise.
4627
4628 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
4629
4630         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
4631         ~X or ~Y simplify.
4632
4633 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
4634
4635         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
4636
4637 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
4638             Joseph S. Myers  <joseph@codesourcery.com>
4639
4640         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
4641         * c-typeck.c (build_c_cast): Check these options.
4642         * doc/invoke.texi: Document these options.
4643
4644 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
4645
4646         * tree-ssa-phiopt.c: Update a comment about the pass.
4647
4648 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
4649
4650         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
4651         config/mcore/mcore.c: Fix comment typos.
4652
4653 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
4654
4655         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
4656         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
4657
4658 2005-04-19  Paul Brook  <paul@codesourcery.com>
4659
4660         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
4661
4662 2005-04-19  Andrew Haley  <aph@redhat.com>
4663
4664         PR java/21022
4665         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
4666         looking at a field's bitpos.
4667
4668 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4669
4670         * system.h (fopen, fdopen, freopen): Define these to the unlocked
4671         libiberty functions.
4672
4673 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
4674
4675         PR tree-optimization/21096
4676         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
4677
4678 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
4679
4680         PR target/21098
4681         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
4682         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
4683
4684 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
4685
4686         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
4687         refers to the function being dumped.
4688
4689 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
4690
4691         * varasm.c (assemble_start_function): Remove reset of in_section.
4692
4693 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
4694
4695         PR tree-optimization/21085
4696         * fold-const (fold_binary): Don't change X % -C to X % C if C has
4697         overflowed.
4698
4699 2005-04-19  Ben Elliston  <bje@au.ibm.com>
4700
4701         * doc/invoke.texi (Optimize Options): Refer to the correct
4702         optimisation flag -ftree-dominator-opts, not -ftree-dom.
4703
4704 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
4705
4706         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
4707         alloca argument to be big enough.
4708
4709 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
4710
4711         PR middle-end/21049
4712         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
4713         cfun->cfg are NULL.
4714
4715 2005-04-18  Tom Tromey  <tromey@redhat.com>
4716
4717         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
4718         typo.
4719
4720 2005-04-18  Richard Henderson  <rth@redhat.com>
4721
4722         * config/alpha/alpha.c (alpha_split_atomic_op): New.
4723         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
4724         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
4725         * config/alpha/alpha-protos.h: Update.
4726         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
4727         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
4728         (attr type): Add ld_l, st_c, mb.
4729         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
4730         iornotsi3, xorsi_internal, xornotsi3): New.
4731         * config/alpha/ev4.md (ev4_ld): Add ld_l.
4732         (ev4_ist_c, ev4_mb): New.
4733         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
4734         (ev5_ld_l): New.
4735         * config/alpha/ev6.md (ev6_ild): Add ld_l.
4736         (ev6_ist): Add st_c.
4737         (ev6_mb): New.
4738         * config/alpha/sync.md: New file.
4739
4740 2005-04-18  Richard Henderson  <rth@redhat.com>
4741
4742         * builtins.c (expand_builtin_sync_operation): Fold nand to and
4743         for constants.
4744
4745         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
4746
4747 2005-04-18  Devang Patel  <dpatel@apple.com>
4748
4749         * config/rs6000/atlivec.md (mulv4si3): New pattern.
4750
4751 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
4752
4753         PR tree-optimization/20922
4754         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
4755         Fold X + c >= X and fold X - c <= X to true.
4756
4757 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
4758
4759         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
4760         unsigned int.
4761         (emergency_labeled_state_free): Likewise.
4762
4763 2005-04-18  Nick Clifton  <nickc@redhat.com>
4764
4765         * config/h8300/h8300.md (jump): Remove prescan parameter from
4766         calls to final_scan_insn.
4767
4768         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
4769         parameter from calls to final_scan_insn.
4770
4771         * config.gcc (m68hc12): Use the m68hc11.opt file for target
4772         specific options.
4773         (v850e, v850e1): Use the v850.opt file for target specific
4774         options.
4775
4776 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
4777
4778         PR tree-optimization/21001
4779         * tree-optimize.c (init_tree_optimization_passes): Move the
4780         first pass_forwprop immediately before pass_vrp.
4781
4782 2005-04-17  Ian Lance Taylor  <ian@airs.com>
4783
4784         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
4785         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
4786         from enum tree_code op to bool is_sizeof.
4787         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
4788         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
4789         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
4790         case.
4791         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
4792         cases.
4793         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
4794         ALIGNOF_EXPR cases.
4795
4796 2005-04-17  Ian Lance Taylor  <ian@airs.com>
4797
4798         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
4799
4800 2005-04-17  Richard Henderson  <rth@redhat.com>
4801
4802         * config/alpha/alpha.c (va_list_skip_additions): Only define if
4803         TARGET_ABI_OSF.
4804         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
4805         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
4806         of indirection through ssa names while looking for the gpr counter
4807         field.
4808         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
4809         saved va_list_gpr_size and va_list_fpr_size.
4810
4811 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
4812
4813         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
4814         both pointers or both integers.
4815
4816         * tree-vrp.c (maybe_add_assert_expr): Don't assert
4817         ASSERT_EXPRs for single-use variable.
4818
4819         * tree-into-ssa.c: Fix a comment typo.
4820
4821 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
4822
4823         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
4824         -mipsN before forcing a default of -mips2.
4825
4826 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
4827
4828         * predict.h (IS_TAKEN): Remove.
4829         * rtl.h (NOTE_PREDICTION): Likewise.
4830
4831         * modulo-sched.c (CFG_HOOKS): Remove.
4832
4833         * c-parser.c (N_C_TTYPES): Remove.
4834
4835         * tree-flow-inline.h (get_stmt_operands): Remove.
4836         * lambda-code.c, tree-ssa-loop-unswitch.c,
4837         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
4838         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
4839         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
4840         calls to get_stmt_operands.
4841         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
4842
4843 2005-04-17  Richard Henderson  <rth@redhat.com>
4844
4845         PR target/20375
4846         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
4847         of CUMULATIVE_ARGS past the last named argument.
4848         (alpha_va_start): Expect pretend_args_size only if strictly less than
4849         6 named arguments.
4850
4851 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
4852
4853         PR middle-end/21024
4854         * builtins.c (expand_builtin_strcat): Convert the result of
4855         strlen to the right type.
4856         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
4857         avoid creating type mismatches.
4858         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
4859         type mismatches.
4860
4861         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
4862
4863 2005-04-16  Richard Henderson  <rth@redhat.com>
4864
4865         PR target/21051
4866         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
4867         Use the mode of boolean_type_node when the user doesn't provide one.
4868         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
4869
4870 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
4871
4872         PR target/20126
4873         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
4874         (const)).
4875
4876         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
4877         comment.
4878
4879 2005-04-16  Roger Sayle  <roger@eyesopen.com>
4880             Steven Bosscher  <stevenb@suse.de>
4881
4882         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
4883         (fold_unary_to_constant): Likewise.
4884
4885 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
4886
4887         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
4888         PROP_ASM_SCAN.
4889
4890 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
4891
4892         * doc/install.texi (Specific): Avoid using asterisks in @anchor
4893         names related to target triplets.
4894         Remove i?86-*-esix from platform directory.
4895         Remove powerpc-*-eabiaix from platform directory.
4896
4897 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
4898
4899         PR middle-end/20491
4900         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
4901         falling through from SUBREG case to REG.
4902
4903 2005-04-15  Roger Sayle  <roger@eyesopen.com>
4904
4905         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
4906         (fold_binary): Update comment mentioning fold_relational_hi_lo.
4907         (fold_binary_to_constant): Simplify using fold_binary.
4908         (fold_unary_to_constant): Likewise, simplify using fold_unary.
4909
4910 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4911
4912         * gthr-posix.c (pthread_cancel): Define.
4913         (pthread_mutexattr_init): Likewise.
4914         (pthread_mutexattr_settype): Likewise.
4915         (pthread_mutexattr_destroy): Likewise.
4916
4917 2005-04-15  David S. Miller  <davem@davemloft.net>
4918
4919         PR target/20673
4920         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
4921
4922 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4923
4924         PR tree-optimization/21031
4925         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
4926         (forward_propagate_into_cond_1): Call it.  Forward propagate
4927         integer-integer casts into COND_EXPRs.
4928
4929 2005-04-15  Dave Korn  <dave.korn@artimi.com>
4930
4931         * gcc.c (default_compilers): Clarify obscure error message when
4932         reading from standard input.
4933
4934 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4935
4936         * basic-block.h (PROP_EQUAL_NOTES): Remove.
4937         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
4938
4939         * tree-ssa-alias.c (init_alias_info): Remove a call to
4940         get_stmt_operands.
4941
4942 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
4943
4944         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
4945         of non-virtual PHI nodes like we use to.
4946
4947 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
4948
4949         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
4950         (attr_copy_rtx): Do not use it.
4951
4952 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
4953
4954         * doc/tree-ssa.texi: Grammer/abbreviation updates.
4955
4956 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
4957
4958         * tree-vect-transform.c (vectorizable_store): Mark necessary
4959         objects in the vectorized store needing renaming.  Update the
4960         SSA graph for V_MAY_DEF operands in the original store.
4961
4962 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
4963
4964         * tree-ssa-pre.c (compute_avail): It's okay to have
4965         TREE_INVARIANT's here, and value number the resulting expressions.
4966         (create_expression_by_pieces): Make sure operands that were
4967         min_invariant when we started, stay that way.
4968
4969 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
4970
4971         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
4972
4973 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4974
4975         PR tree-optimization/20936.
4976         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
4977
4978 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4979
4980         * doc/invoke.texi: Fix typos.
4981         * doc/md.texi: Likewise.
4982         * doc/rtl.texi: Likewise.
4983         * doc/sourcebuild.texi: Likewise.
4984         * doc/tm.texi: Likewise.
4985
4986 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
4987
4988         PR tree-optimization/21004
4989         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
4990         and floorl in c99 mode only.
4991         * builtins.c (expand_builtin_int_roundingfn): Assert that
4992         fallback_fndecl is not NULL_TREE.
4993
4994 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
4995
4996         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
4997         * basic-block.h: Update the prototype for
4998         purge_all_dead_edges.
4999         * cfgexpand.c (tree_expand_cfg): Update a call to
5000         purge_all_dead_edges.
5001         * combine.c (combine_instructions): Likewise.
5002         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
5003         rest_of_handle_cse2, rest_of_handle_gcse,
5004         rest_of_handle_postreload): likewise.
5005
5006 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
5007
5008         PR middle-end/20739
5009         * gimplify.c (gimplify_addr_expr): Compensate for removal of
5010         e.g. cv-qualification conversions.
5011
5012 2005-04-14  Mike Stump  <mrs@apple.com>
5013
5014         * config/darwin-c.c (framework_construct_pathname): We must
5015         find all headers of a framework in the first instance of it
5016         found in the seach path.
5017
5018 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
5019
5020         PR tree-optimization/21021
5021         * tree-vrp.c (compare_values): Work around a bug in the front
5022         end that produces a comparison of mismatched types.
5023
5024 2004-04-14  Richard Henderson  <rth@redhat.com>
5025
5026         * config/ia64/ia64.h (enum fetchop_code): Remove.
5027         (enum ia64_builtins): Move ...
5028         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
5029         members except BSP and FLUSHRS.
5030         (ia64_init_builtins): Remove __sync builtins.
5031         (ia64_expand_builtin): Likewise.
5032         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
5033         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
5034         (ia64_expand_lock_release): Remove.
5035         * config/ia64/ia64.md (mf): Move to sync.md.
5036         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
5037         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
5038         * config/ia64/sync.md: New file.
5039         (memory_barrier): Rename from mf.
5040         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
5041         (cmpxchg_acq_<I48MODE>): Likewise.
5042         (sync_lock_test_and_set<I48MODE>): Likewise.
5043
5044         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
5045         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
5046
5047 2004-04-14  Richard Henderson  <rth@redhat.com>
5048
5049         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
5050         (ix86_compare_emitted): New.
5051         (ix86_expand_compare): Use ix86_compare_emitted if set.
5052         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
5053         and ix86_compare_op0 are set.
5054         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
5055         (TARGET_CMPXCHG, TARGET_XADD): New.
5056         (ix86_compare_emitted): Declare.
5057         * config/i386/i386.md: Include sync.md
5058         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
5059         (UNSPECV_XCHG, UNSPECV_LOCK): New.
5060         * config/i386/sync.md: New file.
5061
5062 2004-04-14  Richard Henderson  <rth@redhat.com>
5063
5064         PR middle-end/14311
5065         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
5066         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
5067         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
5068         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
5069         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
5070         BT_FN_I8_VPTR_I8_I8): New.
5071         * builtins.def (DEF_SYNC_BUILTIN): New.
5072         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
5073         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
5074         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
5075         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
5076         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
5077         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
5078         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
5079         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
5080         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
5081         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
5082         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
5083         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
5084         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
5085         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
5086         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
5087         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
5088         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
5089         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
5090         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
5091         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
5092         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
5093         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
5094         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
5095         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
5096         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
5097         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
5098         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
5099         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
5100         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
5101         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
5102         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
5103         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
5104         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
5105         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
5106         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
5107         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
5108         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
5109         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
5110         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
5111         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
5112         BUILT_IN_SYNCHRONIZE: New.
5113         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
5114         as a function.  Accept __sync_ as a prefix as well.
5115         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
5116         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
5117         expand_builtin_lock_release): New.
5118         (expand_builtin): Call them.
5119         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
5120         neither BOTH_P nor FALLBACK_P are defined.
5121         (builtin_type_for_size): New.
5122         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
5123         (resolve_overloaded_builtin): New.
5124         * c-common.h (resolve_overloaded_builtin): Declare.
5125         (builtin_type_for_size): Declare.
5126         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
5127         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
5128         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
5129         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
5130         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
5131         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
5132         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
5133         sync_compare_and_swap_cc, sync_lock_test_and_set,
5134         sync_lock_release): New.
5135         * optabs.h: Declare them.
5136         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
5137         expand_sync_operation, expand_sync_fetch_operation,
5138         expand_sync_lock_test_and_set): Declare.
5139         * genopinit.c (optabs): Add sync optabs.
5140         * optabs.c (init_optabs): Initialize sync optabs.
5141         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
5142         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
5143         expand_sync_operation, expand_sync_fetch_operation,
5144         expand_sync_lock_test_and_set): New.
5145         * doc/extend.texi (Atomic Builtins): New section
5146         * doc/md.texi (Standard Names): Add sync patterns.
5147
5148 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
5149
5150         * tree-eh.c (lower_try_finally_copy): Generate new code in
5151         response to goto_queue entries as if the queue was sorted by
5152         index, not pointers.
5153         (lower_try_finally_switch): Likewise.
5154
5155 2005-04-14  Richard Henderson  <rth@redhat.com>
5156
5157         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
5158         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
5159         register.
5160         (ix86_expand_fp_movcc): Update to match.
5161         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
5162         * config/i386/i386-protos.h: Update.
5163         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
5164         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
5165
5166 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
5167
5168         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
5169         refer to 4.0.
5170
5171 2005-04-14  Julian Brown  <julian@codesourcery.com>
5172
5173         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
5174         link failures on ppc64 Linux.
5175
5176 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5177
5178         * config.gcc: Set cpu_type for s390.
5179
5180 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
5181
5182         Fix PR tree-optimization/20963
5183         * tree-ssa-pre.c (compute_avail): Remove special case for
5184         TREE_INVARIANT.
5185         (create_expression_by_pieces): Add value numbers for forced out
5186         statements.
5187
5188 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
5189
5190         * config/cris/cris.md: Replace references to (reg:SI 16) with
5191         (reg:SI CRIS_SRP_REGNUM).
5192
5193 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
5194
5195         PR tree-optimization/20657
5196         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
5197         create an appropriate range from it.
5198
5199 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
5200
5201         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
5202         <UNSPEC_FIST_CEIL> case.
5203
5204         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
5205         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
5206         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
5207         to implement lfloor and llfloor built-ins as x87 intrinsic function.
5208         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
5209         (lfloor<mode>2): New expanders.
5210         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
5211         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
5212         to implement lceil and llceil built-ins as x87 intrinsic function.
5213         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
5214         (lceil<mode>2): New expanders.
5215
5216 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
5217
5218         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
5219         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
5220
5221 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
5222
5223         PR target/20927
5224         * config/s390/s390-modes.def: Define TFmode.
5225
5226 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
5227
5228         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
5229         (JUMP_TABLES_IN_TEXT_SECTION): Define.
5230         * config/mips/mips.c (mips16_insn_length): Remove reference to
5231         JUMP_TABLES_IN_TEXT_SECTION.
5232
5233 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
5234
5235         * simplify-rtx.c (simplify_binary_operation_1): Return
5236         scalar or vector of constant 0, depending on the xor's
5237         mode.
5238
5239 2005-04-13  Dale Johannesen  <dalej@apple.com>
5240
5241         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
5242         (objc-act.o):  Ditto.
5243         * objc/objc-act.c (objc_gimplify_expr):  New.
5244         (objc_get_callee_fndecl):  New.
5245         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
5246         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
5247         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
5248
5249 2005-04-13  Devang Patel  <dpatel@apple.com>
5250
5251         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
5252         temp variables.
5253
5254 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
5255
5256         CRIS prologue as RTL.
5257         * config/cris/cris-protos.h (cris_emit_movem_store)
5258         (cris_expand_prologue): Prototype.
5259         * config/cris/cris.c (struct machine_function): New member
5260         stdarg_regs.
5261         (cfa_label_num, cris_target_asm_function_prologue): Remove.
5262         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
5263         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
5264         (cris_load_multiple_op, cris_return_address_on_stack)
5265         (cris_return_address_on_stack_for_return): ISO-Cify.
5266         (cris_store_multiple_op): New predicate function.
5267         (cris_expand_prologue, cris_emit_movem_store): New functions.
5268         (cris_print_operand) <case 'O'>: Handle modifications other than
5269         post-increment.
5270         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
5271         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
5272         (cris_gen_movem_load): Rearrange slightly to make local variable
5273         src a parameter, removing osrc.
5274         (cris_setup_incoming_varargs): Set machine_function member
5275         stdarg_regs to correspond to the number of registers that need to
5276         be saved.
5277         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
5278         CRIS_UNSPEC_GOT.
5279         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
5280         cris_general_operand_or_gotless_symbol accept UNSPEC.
5281         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
5282         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
5283         ("*cris_store_multiple"): New pattern.  Tweak common comment above
5284         this and "*cris_load_multiple".
5285         ("prologue"): New define_expand.
5286
5287         * config/cris/cris.md ("epilogue"): Conditionalize on
5288         TARGET_PROLOGUE_EPILOGUE.
5289
5290 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
5291
5292         PR target/20924
5293         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
5294         fpsr 0 instead of fpsr 1.
5295         (divsf3_internal_thr): Ditto.
5296         (divdf3_internal_lat): Ditto.
5297         (divdf3_internal_thr): Ditto.
5298         (divxf3_internal_lat): Ditto.
5299         (divxf3_internal_thr): Ditto.
5300
5301 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
5302
5303         PR tree-optimization/20913
5304         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
5305
5306         PR tree-optimization/20702
5307         * tree-vrp.c (maybe_add_assert_expr): Recurse into
5308         dominator children that haven't been walked into.
5309
5310 2005-04-13  Julian Brown  <julian@codesourcery.com>
5311
5312         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
5313         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
5314         is true.
5315
5316 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
5317
5318         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
5319         config/i386/sse.md: Fix comment typos.
5320
5321         * genattrtab.c (NULL_ATTR): Remove.
5322         * ifcvt.c (NULL_EDGE): Likewise.
5323
5324         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
5325
5326         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
5327         NOTE_PREDICT): Remove.
5328
5329 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
5330
5331         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
5332         * configure: Regenerate.
5333         * config.in: Likewise.
5334         * system.h: Declare vsnprintf if not already declared.
5335
5336 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
5337
5338         * optc-gen.awk: Handle stand-alone Mask records.
5339         * opth-gen.awk: Likewise.
5340         * doc/options.texi (Option file format): Document them.
5341         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
5342         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
5343         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
5344         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
5345         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
5346         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
5347         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
5348         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
5349         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
5350         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
5351         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
5352         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
5353         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
5354         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
5355         TARGET_LONG_DOUBLE_128): Likewise.
5356         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
5357         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
5358         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
5359         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
5360         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
5361         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
5362         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
5363         * config/sparc/sparc.c (fpu_option_set): New global.
5364         (sparc_handle_option): New function.
5365         (sparc_override_options): Test fpu_option_set.
5366         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
5367         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
5368         * config/sparc/sparc.opt: New file.
5369         * config/sparc/little-endian.opt: Likewise.
5370         * config/sparc/long-double-switch.opt: Likewise.
5371
5372 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
5373
5374         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
5375         (bfin_handle_options): Set it if -mshared-library-id= is seen.
5376         * config/bfin/bfin.opt (mshared-library-id=): Lose
5377         Var(bfin_lib_id_given).
5378
5379 2005-04-13  Matt Thomas  <matt@3am-software.com>
5380
5381         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
5382         defining.
5383
5384 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
5385
5386         * rtl.h (CLEAR_RTX_FLAGS): Remove.
5387
5388         * cgraphunit.c (INSNS_PER_CALL): Remove.
5389
5390         * tree-ssa-forwprop.c (vars,
5391         record_single_argument_cond_exprs,
5392         substitute_single_use_vars): Remove.
5393         (forward_propagate_into_cond_1, forward_propagate_into_cond):
5394         New.
5395         (tree_ssa_forward_propagate_single_use_vars): Call
5396         forward_propagate_into_cond for each COND_EXPR.
5397
5398         * tree-inline.c (INSNS_PER_STMT): Remove.
5399
5400 2005-04-12  Richard Henderson  <rth@redhat.com>
5401
5402         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
5403         (ix86_expand_sse_fp_minmax): ... from ...
5404         (ix86_expand_fp_movcc): ... here.
5405         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
5406         * config/i386/i386-protos.h: Update.
5407         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
5408         (sse_setccsf, sse_setccdf): Allow before reload.
5409         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
5410         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
5411         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
5412         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
5413         (anddf3, nanddf3, iordf3, xordf3): New.
5414
5415 2005-04-12  Jeff Law  <law@redhat.com>
5416
5417         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
5418         (tree-ssa-uncprop.o): Add dependencies.
5419         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
5420         * tree-flow.h (remove_useless_stmts): Remove prototype.
5421         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
5422         remove_useless_stmts.
5423         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
5424         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
5425         * tree-pass.h (pass_uncprop): Declare.
5426         * tree-ssa-uncprop.c: New file.
5427
5428 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
5429
5430         PR target/20670
5431         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
5432
5433 2005-04-12  Caroline Tice  <ctice@apple.com>
5434
5435         Temporary fix for partitioning problems.
5436         * passes.c (rest_of_handle_final): Remove code that
5437         frees unlikely_text_section_name,
5438         * varasm.c (assemble_start_function): Test for partitioning
5439         flag before writing out section labels.
5440         (assemble_end_function): Test for partitioning flag before
5441         writing out section labels.
5442
5443 2005-04-12  Steven Bosscher  <stevenb@suse.de>
5444             Stuart Hastings <stuart@apple.com>
5445             Jan Hubicka  <jh@suse.cz>
5446
5447         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
5448         references to gt-tree-cfg.h.
5449         * basic-block.h (struct basic_block_def): Don't skip rbi
5450         for garbage collection.
5451         (struct reorder_block_def): Make GTY-able.
5452         (struct control_flow_graph): New structure.
5453         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
5454         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
5455         but instead defines to the control_flow_graph for cfun.
5456         (label_to_block_map): New define, points to the label map of
5457         the control_flow_graph for cfun.
5458         (n_edges_for_function, n_basic_blocks_for_function,
5459         last_basic_block_for_function, basic_block_info_for_function,
5460         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
5461         basic_block_info_for_function, label_to_block_map_for_function):
5462         Counterparts for the above, taking a struct function as an extra
5463         argument.
5464         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
5465         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
5466         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
5467         (alloc_rbi_pool, free_rbi_pool): Remove.
5468         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
5469         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
5470         here...
5471         (cfg_layout_finalize) ... and don't free it here.
5472         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
5473         garbage collected.
5474         * flow.c (free_basic_block_vars): Set label_to_block_map and
5475         n_edges to zero too.
5476         * function.h (struct function): Add cfg field.
5477         * function.c (allocate_struct_function): Allocate the cfg.
5478         * tree-cfg.c (label_to_block_map): Remove.
5479         (build_tree_cfg): Don't allocate the rbi pool here...
5480         (delete_tree_cfg_annotations): ...and don't free it here.
5481         Also don't nullify label_to_block_map for cfun.
5482
5483 2005-04-12  Caroline Tice  <ctice@apple.com>
5484
5485         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
5486         Revert my patch from April 9.
5487         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
5488         (reorder_basic_blocks): Revert my patch from April 9.
5489         (insert_section_boundary_note): Revert my patch from April 9.
5490         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
5491         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
5492         (COLD_END_LABEL):  Revert my patch from April 9.
5493         (cold_text_section_label):  Revert my patch from April 9.
5494         (cold_end_label): Revert my patch from April 9.
5495         (dwarf2out_switch_text_section): Revert my patch from April 9.
5496         (output_aranges): Revert my patch from April 9.
5497         (output_ranges):  Revert my patch from April 9.
5498         (output_line_info): Revert my patch from April 9.
5499         (add_location_or_const_value_attribute):  Revert my patch from April 9.
5500         (dwarf2out_var_location): Revert my patch from April 9.
5501         (dwarf2out_init):  Revert my patch from April 9.
5502         (dwarf2out_finish): Revert my patch from April 9.
5503         * function.h (struct function): Revert my patch from April 9.
5504         * opts.c (decode_options): Revert my patch from April 9.
5505         * output.h (unlikely_section_label, hot_section_label,
5506         hot_section_end_label, cold_section_end_label,
5507         unlikely_text_section_name): Revert my patch from April 9.
5508         * passes.c (rest_of_handle_final): Revert my patch from April 9.
5509         * varasm.c (unlikely_section_label, hot_section_label,
5510         hot_section_end_label, cold_section_end_label,
5511         unlikely_text_section_name): Revert my patch from April 9.
5512         (initialize_cold_section_name): Revert my patch from April 9.
5513         (unlikely_text_section): Revert my patch from April 9.
5514         (in_unlikely_text_section): Revert my patch from April 9.
5515         (named_section): Revert my patch from April 9.
5516         (function_section): Revert my patch from April 9.
5517         (current_function_section): Revert my patch from April 9.
5518         (assemble_start_function): Revert my patch from April 9.
5519         (assemble_end_function): Revert my patch from April 9.
5520         (default_section_type_flags_1): Revert my patch from April 9.
5521
5522 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5523
5524         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
5525         * config/sparc/sparc.md (untyped_call): Save the registers manually.
5526
5527         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
5528
5529 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
5530
5531         PR middle-end/20917
5532         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
5533         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
5534
5535 2004-04-12  Richard Henderson  <rth@redhat.com>
5536
5537         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
5538         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
5539         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
5540         (UNSPEC_*, UNSPECV_*): Renumber.
5541
5542 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
5543
5544         PR mudflap/19266
5545         From Richard Henderson <rth@redhat.com>:
5546         * tree-mudflap.c (mf_build_check_statement_for): Correct block
5547         splitting logic.
5548
5549 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
5550
5551         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
5552
5553 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
5554
5555         * config/bfin/bfin.c (bfin_library_id_string): Remove.
5556         (bfin_library_id): New variable.
5557         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
5558         instead of bfin_library_id_string.
5559         (bfin_handle_option): New function.
5560         (override_options): Remove most code to deal with shared library IDs,
5561         just check they aren't used without -mid-shared-library.
5562         (TARGET_HANDLE_OPTION): Define.
5563         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
5564         * config/bfin/bfin.opt (mshared-library-id=): New.
5565
5566 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
5567
5568         * tree-vect-transform.c: Fix comment typos.
5569
5570 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
5571
5572         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
5573         split critical edges when not possible/profitable.
5574
5575 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
5576
5577         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
5578         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
5579         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
5580         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
5581         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
5582         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
5583         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
5584         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
5585         MASK_NO_BITFIELD.
5586         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
5587         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5588         * config/ns32k/ns32k.opt: New file.
5589
5590 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
5591
5592         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
5593         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
5594         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
5595         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
5596         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
5597         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
5598         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
5599         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
5600         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
5601         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
5602         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
5603         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
5604         (MASK_COLDFIRE): Formatting fixes.
5605         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
5606         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
5607         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
5608         "_current_shared_library_a5_offset_".
5609         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5610         (MASK_ALL_CPU_BITS): New macro.
5611         (m68k_handle_option): New function.
5612         (override_options): Remove handling of m68k_library_id_string.
5613         * config/m68k/m68k.opt: New file.
5614         * config/m68k/ieee.opt: New file.
5615
5616 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
5617
5618         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
5619         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
5620         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
5621         (TARGET_CXX): Adjust accordingly.
5622         * target.h (struct gcc_target): Remove epxort_class_data.  Add
5623         determine_class_data_visibility and class_data_always_comdat.
5624         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
5625         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
5626         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
5627         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
5628         (arm_cxx_determine_class_data_visibility): New.
5629         (arm_cxx_class_data_always_comdat): Likewise.
5630         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
5631         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
5632         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
5633         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
5634         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
5635         Define.
5636
5637 2005-04-11  Devang Patel  <dpatel@apple.com>
5638
5639         * tree-data-ref.c (build_classic_dist_vector,
5640         compute_subscript_distance): Make externally visible.
5641         * tree-data-ref.h (build_classic_dist_vector,
5642         compute_subscript_distance): Same.
5643         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
5644         Check distance vector against vectorization factor.
5645         (vect_analyze_loop): Determine vectorizaion factor before
5646         analyzing data dependences.
5647         * tree-vectorizer.c (loops_num): Make it externally visible and
5648         rename ...
5649         * tree-vectorizer.c (vect_loops_num): ... new name.
5650         * tree-vectorizer.h  (vect_loops_num): New.
5651
5652 2005-04-11  Devang Patel  <dpatel@apple.com>
5653
5654         * tree-vect-analyze.c (vect_analyze_operations): Check
5655         vectorizable codition.
5656         * tree-vect-transform.c (vect_is_simple_cond): New function.
5657         (vectorizable_condition): New function.
5658         (vect_transform_stmt): Handle condition_vec_info_type.
5659         * tree-vectorizer.h (enum stmt_vec_info_type): Add
5660         condition_vec_info_type.
5661         (vectorizable_condition): New.
5662
5663 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
5664
5665         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
5666         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
5667         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
5668
5669         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
5670         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
5671
5672         * dwarf2out.c (output_line_info): Don't try to dereference
5673         a NULL current_function_decl.
5674
5675         * config/t-slibgcc-darwin: Don't put shared libraries in
5676         directories other than $(slibdir).
5677         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
5678         OS uses for it.
5679
5680 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
5681
5682         PR tree-optimization/20933
5683         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
5684         logic to reject aliases between read-only and writable
5685         variables ...
5686         (may_alias_p): ... here.
5687         (get_tmt_for): Do not associate read-only tags to pointers
5688         whose pointed-to type is not read-only.
5689         * tree-ssa.c (verify_ssa): Check that memory stores have at
5690         least one V_MAY_DEF or V_MUST_DEF.
5691
5692 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5693
5694         PR/17092
5695         * configure.ac (gcc_UNLOCKED_FUNCS): New.
5696         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
5697         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
5698         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
5699         _unlocked function.
5700         (fwrite_unlocked): Fix prototype.
5701
5702         * configure, config.in: Regenerate.
5703
5704 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
5705
5706         * tree-ssa-loop-im.c: Include real.h.
5707         (determine_invariantness_stmt): If real division divisor is
5708         invariant and flag_unsafe_math_optimizations enabled, generate
5709         invariant reciprocal for hoisting.
5710         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
5711
5712 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
5713
5714         Fix PR tree-optimization/20926
5715
5716         * tree-ssa-alias.c (add_type_alias): Handle subvars.
5717
5718 2005-04-11  Devang Patel  <dpatel@apple.com>
5719
5720         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
5721         operand ordering.
5722
5723 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5724
5725         * fold-const.c (fold_binary_op_with_conditional_arg):
5726         use fold_buildN instead of "fold (buildN" in some
5727         non obvious places.
5728         (fold_unary): Likewise.
5729         (fold_binary): Likewise.
5730
5731 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
5732
5733         Fix PR tree-optimization/20612
5734         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
5735         handling
5736         (perfect_nestify): preheaderbb is *not* part of loop of the
5737         old destination.
5738
5739 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5740
5741         * tree-ssa-alias.c (may_alias_p): If the variable
5742         is a global variable and the pointer is parameter
5743         and -fargument-noalias-global is used, then
5744         the pointer cannot alias the variable.
5745
5746 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
5747
5748         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
5749         * config/sparc/sparc.h: Likewise.
5750         * config/sparc/sparc.md: Likewise.
5751
5752 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
5753
5754         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
5755
5756         * tree-vrp.c: Fix a comment typo.
5757
5758 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
5759
5760         PR tree-optimization/20920
5761         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
5762         SSA_NAME flows through an abnormal edge.
5763         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
5764         through abnormal edges.
5765         (maybe_add_assert_expr): Likewise.
5766
5767 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
5768
5769         * config/s390/s390.h (s390_tune_string, s390_arch_string)
5770         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
5771         (s390_stack_size_string, s390_stack_guard_string, target_flags)
5772         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
5773         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
5774         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
5775         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
5776         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
5777         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
5778         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
5779         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
5780         (TARGET_HANDLE_OPTION): Likewise.
5781         (s390_tune): Initialize to PROCESSOR_max.
5782         (s390_arch_string): Make static.
5783         (s390_tune_string, s390_warn_framesize_string): Delete.
5784         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
5785         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
5786         (s390_handle_arch_option, s390_handle_option): New functions.
5787         (override_options): Remove parsing of option strings.
5788         * config/s390/s390.opt: New file.
5789
5790 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
5791
5792         * tree-complex.c (expand_vector_operations): Call
5793         update_stmt_if_modified.
5794
5795 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
5796
5797         * tree-vect-analyze (vect_determine_vectorization_factor):
5798         Do not use GET_MODE_NUNITS.
5799         * tree-vect-transform.c (vect_get_vec_def_for_operand,
5800         (vectorizable_load, vect_transform_loop): Likewise.
5801
5802 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
5803
5804         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
5805         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
5806         * optabs.h (enum optab_index): Add new OTI_lceil.
5807         (lceil_optab): Define corresponding macro.
5808         * optabs.c (init_optabs): Initialize lceil_optab.
5809         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
5810         and lceildi2 patterns.
5811         * builtins.c (expand_builtin_int_roundingfn): Handle
5812         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
5813         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
5814         BUILT_IN_LLCEIL{,F,L}.
5815         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
5816         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
5817         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
5818         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
5819         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
5820         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
5821         into lceil built-in function and (long long int)ceil{,f,l} into
5822         llceil built-in function.
5823         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
5824         BUILT_IN_LLCEIL.
5825
5826 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5827
5828         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
5829         zero.
5830
5831 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
5832
5833         * config/arm/arm.c: Fix a comment typo.
5834         * doc/tree-ssa.texi: Fix a typo.
5835
5836 2005-04-10  Steven Bosscher  <stevenb@suse.de>
5837
5838         * cselib.c (clear_table): Rename to cselib_clear_table.
5839         * cselib.h (cselib_clear_table): Add prototype.
5840         * gcse.c (gcse_main): Make 'f' argument unused.
5841         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
5842         of each basic block instead.
5843         (compute_sets, compute_hash_table_work): Likewise.
5844         (constprop_register): Change int 'alter_jumps' argument to bool.
5845         (do_local_cprop): Likewise.
5846         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
5847         the insn chain.  Explicitly clear the cselib tables after finishing
5848         one basic block.  Make sure there are no unterminated libcall blocks.
5849         Update compute_sets call.
5850         (cprop): Walk basic blocks instead of the insn chain.
5851         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
5852         Likewise.
5853         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
5854         one_cprop_pass calls.
5855
5856 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
5857
5858         * combine.c (combine_simplify_rtx): Remove a transformation that
5859         relies on an invalid assumption about rtl sign-extension semantics.
5860
5861 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
5862
5863         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
5864         to build_int_cst_wide.
5865
5866 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
5867
5868         PR target/20126
5869         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
5870         set the original address pseudo to the correct value before the
5871         original insn, if possible, and leave the insn alone, otherwise
5872         create a new pseudo, set it and replace it in the insn.
5873         * recog.c (validate_change_maybe_volatile): New.
5874         * recog.h (validate_change_maybe_volatile): Declare.
5875
5876 2005-04-09  Caroline Tice  <ctice@apple.com>
5877
5878         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
5879         Remove targetm.have_named_sections test.
5880         (fix_edges_for_rarely_executed_code): Likewise.
5881         (insert_section_boundary_note): Likewise.
5882         (reorder_basic_blocks): Check partitioning flag before calling
5883         verify_hot_cold_block_grouping.
5884         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
5885         the function struct rather than global variables.
5886         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
5887         (COLD_END_LABEL): Likewise
5888         (cold_text_section_label): New static global variable.
5889         (cold_end_label): Likewise.
5890         (dwarf2out_switch_text_section): Get hot/cold section labels from
5891         the function struct rather than global variables.
5892         (output_aranges): Use cold_text_section_label and cold_end_label;
5893         check partitioning flag before putting out delta.
5894         (output_ranges): Remove incorrect code attempting to use
5895         hot/cold labels.
5896         (output_line_info): Get cold section label from function struct.
5897         (add_location_or_const_value_attribute): Likewise.
5898         (get_subprogram_die): Get hot/cold section labels from function struct.
5899         (dwarf2out_var_location): Likewise.
5900         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
5901         write out cold_text_section_label if partition flag is set.
5902         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
5903         * function.h (struct function): Add new fields to point to hot/cold
5904         section labels: hot_section_label, cold_section_label,
5905         hot_section_end_label and cold_section_end_label; also add new field
5906         for cold text section name, unlikely_text_section_name.
5907         * opts.c (decode_options): Turn off partitioning flag if
5908         !targetm.have_named_sections.
5909         * output.h (hot_section_label): Remove.
5910         (hot_section_end_label): Remove.
5911         (cold_section_end_label): Remove.
5912         (unlikely_section_label): Remove.
5913         (unlikely_text_section_name): Remove.
5914         * passes.c (rest_of_handle_final):  Remove code that frees
5915         unlikely_text_section_name.
5916         * varasm.c (unlikely_section_label): Remove.
5917         (hot_section_label): Remove.
5918         (hot_section_end_label): Remove.
5919         (cold_section_end_label): Remove.
5920         (unlikely_text_section_name):  Remove.
5921         (initialize_cold_section_name): Modify to call
5922         targetm.strip_name_encoding; to store cold section name in current
5923         function struct, if it exists; and to only use the decl_section_name
5924         if flag_named_sections is true.
5925         (unlikely_text_section): Modify to get section name out of current
5926         function struct, if there is one; otherwise build it from
5927         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
5928         (in_unlikely_text_section): Likewise.
5929         (named_section): Modify to get/put cold section name in current function
5930         struct, if there is one.
5931         (function_section):  Change 'bool unlikely' to 'int reloc'; check
5932         targetm.have_named_sections before calling named_section.
5933         (current_function_section): Likewise.
5934         (assemble_start_function): Modify to get/put unlikely_text_section_name
5935         in current function struct; modify to get hot/cold section labels
5936         from function struct; initialize labels using
5937         ASM_GENERATE_INTERNAL_LABEL;
5938         test partitioning flag before writing out hot section label.
5939         (assemble_end_function): Test partitioning flag before writing out
5940         hot/cold section labels.
5941         (default_section_type_flags_1):  Modify to use array instead of
5942          char* for unlikely_text_section_name; set flags correctly for
5943          cold text section if there is not a current function decl.
5944
5945 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
5946
5947         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
5948         and TI_VA_LIST_FPR_COUNTER_FIELD.
5949         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
5950         * tree-pass.h (pass_stdarg): Add.
5951         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
5952         * tree-stdarg.c: New file.
5953         * tree-stdarg.h: New file.
5954         * Makefile.in (OBJS-common): Add tree-stdarg.o.
5955         (tree-stdarg.o): Add dependencies.
5956         * function.h (struct function): Add va_list_gpr_size and
5957         va_list_fpr_size fields.
5958         * function.c (allocate_struct_function): Initialize them.
5959         * target.h (struct gcc_target): Add stdarg_optimize_hook.
5960         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
5961         (TARGET_INITIALIZER): Add it.
5962
5963         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
5964         va_list_{g,f}pr_counter_field.
5965         (ix86_setup_incoming_varargs): Don't do anything if reg_save
5966         area will not be used.  Only save registers that tree-stdarg.c
5967         detected they need saving.
5968         (ix86_va_start): Don't set up fields that won't be used.
5969
5970         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
5971         va_list_{g,f}pr_counter_field.
5972         (setup_incoming_varargs): Don't do anything if reg_save
5973         area will not be used.  Only save registers that tree-stdarg.c
5974         detected they need saving.
5975         (rs6000_va_start): Don't set up fields that won't be used.
5976
5977         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
5978         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
5979         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
5980         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
5981
5982 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
5983
5984         PR target/20795
5985         * config/i386/i386.c (construct_container): Pass empty aligned
5986         struct, union or class in memory.
5987
5988 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
5989
5990         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
5991         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
5992         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
5993         config/rs6000/predicates.md: Fix comment typos.
5994
5995         * sched-int.h (haifa_insn_data): Remove blockage and units.
5996         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
5997         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
5998         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
5999
6000 2005-04-09  Jan Hubicka  <jh@suse.cz>
6001             Steven Bosscher  <stevenb@suse.de>
6002
6003         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
6004         * cfgloop.c (get_loop_exit_edges): Likewise.
6005         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
6006         (unloop): Likewise.
6007         * loop-unroll.c (analyze_insns_in_loop): Likewise.
6008         * tree-cfg.c (dump_cfg_status): Likewise.
6009
6010 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
6011
6012         * config/rs6000/predicates.md (altivec_register_operand): Remove
6013         redundant match_code test.
6014         (gpc_reg_operand): Same.
6015         (cc_reg_operand): Same.
6016         (cc_reg_not_cr0_operand): Same.
6017
6018 2005-04-09  Jan Hubicka  <jh@suse.cz>
6019
6020         Forgotten hunk from my last merge patch:
6021         * final.c (output_addr_const): Do not call mark_referenced.
6022
6023 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
6024
6025         * doc/tree-ssa.texi: Add immediate use documentation.
6026
6027 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
6028
6029         * arm.c (FL_WBUF): Define.
6030         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
6031         (arm_is_6_or_7): Delete.
6032         (arm_tune_wbuf): New.
6033         (arm_override_options): Set arm_tune_wbuf.
6034         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
6035         (arm_is_6_or_7): Delete declaration.
6036         (arm_tune_wbuf): New declartion.
6037         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
6038         (model_wbuf): Derive from arm_tune_wbuf.
6039         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
6040         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
6041         (arm740t): Mark CPUs as having a write buffer.
6042
6043 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
6044
6045         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
6046         of 'const_double_operand' in operand 2 constraints.  Update enable
6047         condition.
6048
6049 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
6050
6051         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
6052         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
6053         * optabs.h (enum optab_index): Add new OTI_lfloor.
6054         (lfloor_optab): Define corresponding macro.
6055         * optabs.c (init_optabs): Initialize lfloor_optab.
6056         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
6057         and lfloordi2 patterns.
6058         * builtins.c (expand_builtin_int_roundingfn): New prototype.
6059         (expand_builtin_int_roundingfn): New function.
6060         (fold_builtin_int_roundingfn): New prototype.
6061         (fold_builtin_int_roundingfn): New function, renamed from
6062         fold_builtin_lround.
6063         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
6064         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
6065         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
6066         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
6067         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
6068         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
6069         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
6070         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
6071         into lfloor built-in function and (long long int)floor{,f,l} into
6072         llfloor built-in function.
6073         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
6074         BUILT_IN_LLFLOOR.
6075
6076 2005-04-08  Ian Lance Taylor  <ian@airs.com>
6077
6078         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
6079         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
6080         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
6081         (DO_COND, DO_BODY): Likewise.
6082         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
6083         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
6084         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
6085         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
6086         (build_continue_stmt, build_break_stmt): Don't declare.
6087         (c_do_switch_warnings): Update declaration.
6088         * c-gimplify.c (enum bc_t): Remove.
6089         (struct c_gimplify_ctx, ctxp): Remove.
6090         (push_context, pop_context): Remove static functions.
6091         (c_genericize): Don't call push_context or pop_context.
6092         (begin_bc_block, finish_bc_block): Remove static functions.
6093         (build_bc_goto): Likewise.
6094         (gimplify_c_loop): Likewise.
6095         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
6096         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
6097         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
6098         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
6099         * c-common.c (c_do_switch_warnings): Rename from
6100         c_do_switch_warnings_1.
6101         (c_do_switch_warnings) [old version]: Remove.
6102         (c_do_switch_expr_warnings): Remove.
6103         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
6104         function instead of c_do_switch_expr_warnings.
6105         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
6106         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
6107         * c-pretty-print.c (pp_c_statement): Likewise.
6108         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
6109
6110 2005-04-08  Devang Patel  <dpatel@apple.com>
6111
6112         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
6113         While selecting replacement condition pay attention to loop header.
6114
6115 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
6116
6117         Merge from tree-cleanup-branch: VRP, store CCP, store
6118             copy-prop, incremental SSA updating of FUD chains and
6119             newly exposed symbols.
6120
6121         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
6122         (OBJS-common): Add tree-vrp.o.
6123         (tree-vrp.o): New rule.
6124         * basic-block.h (nearest_common_dominator_for_set): Declare.
6125         * common.opt (ftree-store-ccp): New flag.
6126         (ftree-copy-prop): New flag.
6127         (ftree-vrp): New flag.
6128         (ftree-store-copy-prop): New flag.
6129         * dominance.c (nearest_common_dominator_for_set): New.
6130         * domwalk.c (walk_dominator_tree): Only traverse
6131         statements in blocks marked in walk_data->interesting_blocks.
6132         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
6133         * fold-const.c (fold): Handle ASSERT_EXPR.
6134         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
6135         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
6136         flag_tree_vrp at -O2.
6137         * timevar.def (TV_TREE_VRP): Define.
6138         (TV_TREE_COPY_PROP): Define.
6139         (TV_TREE_STORE_COPY_PROP): Define.
6140         (TV_TREE_SSA_INCREMENTAL): Define.
6141         (TV_TREE_STORE_CCP): Define.
6142         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
6143         to kill_redundant_phi_nodes from comment.
6144         (verify_expr): Handle ASSERT_EXPR.
6145         * tree-dfa.c (mark_new_vars_to_rename): Remove second
6146         argument.  Update all users.
6147         (mark_call_clobbered_vars_to_rename): Remove.  Update all
6148         users.
6149         * tree-flow-inline.h (unmodifiable_var_p): New.
6150         * tree-flow.h (enum value_range_type): Declare.
6151         (struct value_range_def): Declare.
6152         (value_range): Declare.
6153         (remove_all_phi_nodes_for): Remove.  Update all users.
6154         (find_phi_node_for): Declare.
6155         (add_type_alias): Declare.
6156         (count_uses_and_derefs): Declare.
6157         (kill_redundant_phi_nodes): Remove.
6158         (rewrite_into_ssa): Remove.
6159         (rewrite_def_def_chains): Remove.
6160         (update_ssa, register_new_name_mapping, create_new_def_for,
6161         need_ssa_update_p, name_registered_for_update_p,
6162         release_ssa_name_after_update_ssa, dump_repl_tbl,
6163         debug_repl_tbl, dump_names_replaced_by,
6164         debug_names_replaced_by, mark_sym_for_renaming,
6165         mark_set_for_renaming, get_current_def, set_current_def,
6166         get_value_range, dump_value_range, debug_value_range,
6167         dump_all_value_ranges, debug_all_value_ranges,
6168         expr_computes_nonzero, loop_depth_of_name,
6169         unmodifiable_var_p): Declare.
6170         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
6171         ASSERT_EXPR.
6172         * tree-into-ssa.c (block_defs_stack): Update comment.
6173         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
6174         syms_to_rename, names_to_release, repl_tbl,
6175         need_to_initialize_update_ssa_p, need_to_update_vops_p,
6176         need_to_replace_names_p): New locals.
6177         (NAME_SETS_GROWTH_FACTOR): Define.
6178         (struct repl_map_d): Declare.
6179         (struct mark_def_sites_global_data): Add field
6180         interesting_blocks.
6181         (enum rewrite_mode): Declare.
6182         (REGISTER_DEFS_IN_THIS_STMT): Define.
6183         (compute_global_livein): Use last_basic_block instead of
6184         n_basic_blocks.
6185         (set_def_block): Remove last argument.  Update all callers.
6186         (prepare_use_operand_for_rename): Remove.  Update all callers.
6187         (prepare_def_operand_for_rename): Remove.  Update all callers.
6188         (symbol_marked_for_renaming): New.
6189         (is_old_name): New.
6190         (is_new_name): New.
6191         (repl_map_hash): New.
6192         (repl_map_eq): New.
6193         (repl_map_free): New.
6194         (names_replaced_by): New.
6195         (add_to_repl_tbl): New.
6196         (add_new_name_mapping): New.
6197         (mark_def_sites): Assume that all the operands in the
6198         statement are in normal form.
6199         (find_idf): Assert that the block in the stack is valid.
6200         (get_default_def_for): New.
6201         (insert_phi_nodes_for): Add new argument 'update_p'.
6202         Add documentation.
6203         If update_p is true, add a new mapping between the LHS of
6204         each new PHI and the name that it replaces.
6205         (insert_phi_nodes_1): Only call find_idf if needed.
6206         (get_reaching_def): Call get_default_def_for.
6207         (rewrite_operand): Remove.
6208         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
6209         and REWRITE_THIS_STMT are false.
6210         Assume that all the operands in the statement are in
6211         normal form.
6212         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
6213         (rewrite_virtual_phi_arguments): Remove.
6214         (invalidate_name_tags): Remove.
6215         (register_new_update_single, register_new_update_set,
6216         rewrite_update_init_block, replace_use,
6217         rewrite_update_fini_block, rewrite_update_stmt,
6218         rewrite_update_phi_arguments): New.
6219         rewrite_blocks): Remove argument 'fix_virtual_phis'.
6220         Add arguments 'entry', 'what' and 'blocks'.
6221         Initialize the dominator walker according to 'what' and
6222         'blocks'.
6223         Start the dominator walk at 'entry'.
6224         (mark_def_site_blocks): Add argument 'interesting_blocks'.
6225         Use it to configure the dominator walker.
6226         (rewrite_into_ssa): Remove argument 'all'.
6227         Make internal.
6228         (rewrite_all_into_ssa): Remove.
6229         (rewrite_def_def_chains): Remove.
6230         (mark_def_interesting, mark_use_interesting,
6231         prepare_phi_args_for_update, prepare_block_for_update,
6232         prepare_def_site_for, prepare_def_sites,
6233         dump_names_replaced_by, debug_names_replaced_by,
6234         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
6235         delete_update_ssa, create_new_def_for,
6236         register_new_name_mapping, mark_sym_for_renaming,
6237         mark_set_for_renaming, need_ssa_update_p,
6238         name_registered_for_update_p, ssa_names_to_replace,
6239         release_ssa_name_after_update_ssa,
6240         insert_updated_phi_nodes_for, update_ssa): New.
6241         * tree-loop-linear.c (linear_transform_loops): Call
6242         update_ssa instead of rewrite_into_ssa.
6243         * tree-optimize.c (vars_to_rename): Remove.
6244         Update all users.
6245         (init_tree_optimization_passes): Replace
6246         pass_redundant_phi with pass_copy_prop.
6247         Add pass_vrp.
6248         Replace pass_ccp with pass_store_ccp.
6249         Add pass_store_copy_prop after pass_store_ccp.
6250         (execute_todo): If the TODO_ flags don't include updating
6251         the SSA form, assert that it does not need to be updated.
6252         Call update_ssa instead of rewrite_into_ssa and
6253         rewrite_def_def_chains.
6254         If TODO_verify_loops is set, call verify_loop_closed_ssa.
6255         (tree_rest_of_compilation):
6256         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
6257         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
6258         TODO_cleanup_cfg): Renumber.
6259         (TODO_verify_loops, TODO_update_ssa,
6260         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
6261         TODO_update_ssa_only_virtuals): Define.
6262         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
6263         Declare.
6264         * tree-phinodes.c (make_phi_node): Update documentation.
6265         (remove_all_phi_nodes_for): Remove.
6266         (find_phi_node_for): New.
6267         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
6268         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
6269         (interpret_rhs_modify_expr): Likewise.
6270         * tree-sra.c (decide_instantiations): Mark all symbols in
6271         SRA_CANDIDATES for renaming.
6272         (mark_all_v_defs_1): Rename from mark_all_v_defs.
6273         (mark_all_v_defs): New function.  Update all users to call it
6274         with the whole list of scalarized statements, not just the
6275         first one.
6276         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
6277         (compute_flow_insensitive_aliasing): If the tag is
6278         unmodifiable and the variable isn't or vice-versa, don't
6279         make them alias of each other.
6280         (setup_pointers_and_addressables): If the type tag for
6281         VAR is about to change, mark the old one for renaming.
6282         (add_type_alias): New.
6283         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
6284         (ccp_lattice_t): Rename from latticevalue.
6285         (value): Remove.  Update all users.
6286         (const_val): New local variable.
6287         (do_store_ccp): New local variable.
6288         (dump_lattice_value): Handle UNINITIALIZED.
6289         (debug_lattice_value): New.
6290         (get_default_value): Re-write.
6291         (set_lattice_value): Re-write.
6292         (def_to_varying): Remove.  Update all users.
6293         (likely_value): Return VARYING for statements that make
6294         stores when STORE_CCP is false.
6295         Return VARYING for any statement other than MODIFY_EXPR,
6296         COND_EXPR and SWITCH_EXPR.
6297         (ccp_initialize): Re-write.
6298         (replace_uses_in, replace_vuse_in, substitute_and_fold):
6299         Move to tree-ssa-propagate.c.
6300         (ccp_lattice_meet): Handle memory stores when
6301         DO_STORE_CCP is true.
6302         (ccp_visit_phi_node): Likewise.
6303         (ccp_fold): Likewise.
6304         (evaluate_stmt): Likewise.
6305         (visit_assignment): Likewise.
6306         (ccp_visit_stmt): Likewise.
6307         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
6308         into DO_STORE_CCP.
6309         (do_ssa_ccp): New.
6310         (pass_ccp): Use it.
6311         (do_ssa_store_ccp): New.
6312         (gate_store_ccp): New.
6313         (pass_store_ccp): Declare.
6314         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
6315         (may_propagate_copy): Reformat.
6316         Don't abort if ORIG is a virtual and DEST isn't.
6317         If NEW does not have alias information but DEST does,
6318         copy it.
6319         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
6320         copy_prop_kind, which_copy_prop): Declare.
6321         (stmt_may_generate_copy, get_copy_of_val,
6322         get_last_copy_of, set_copy_of_val, dump_copy_of,
6323         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
6324         copy_prop_visit_stmt, copy_prop_visit_phi_node,
6325         init_copy_prop, fini_copy_prop, execute_copy_prop,
6326         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
6327         store_copy_prop): New.
6328         (pass_copy_prop, pass_store_copy_prop): Declare.
6329         * tree-ssa-dom.c (struct opt_stats_d): Add fields
6330         'num_const_prop' and 'num_copy_prop'.
6331         (cprop_operand): Update them.
6332         (dump_dominator_optimization_stats): Dump them.
6333         (tree_ssa_dominator_optimize): Call update_ssa instead of
6334         rewrite_into_ssa.
6335         (loop_depth_of_name): Declare extern.
6336         (simplify_cond_and_lookup_avail_expr): Guard against NULL
6337         values for LOW or HIGH.
6338         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
6339         (record_equivalences_from_stmt): Call expr_computes_nonzero.
6340         (cprop_operand): Only propagate if VAL != OP.
6341         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
6342         statement for renaming.
6343         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
6344         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
6345         add_type_alias if necessary.
6346         Call mark_new_vars_to_rename.
6347         (tree_ssa_iv_optimize): If new symbols need to be renamed,
6348         mark every statement updated, call update_ssa and
6349         rewrite_into_loop_closed_ssa.
6350         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
6351         from LIVEIN if VAR is a virtual.
6352         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
6353         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
6354         (get_call_expr_operands): Reformat statement.
6355         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
6356         symbols.
6357         * tree-ssa-propagate.c (ssa_prop_init): Initialize
6358         SSA_NAME_VALUE for every name.
6359         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
6360         get_value_loaded_by): New.
6361         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
6362         substitute_and_fold): Move from tree-ssa-ccp.c.
6363         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
6364         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
6365         get_value_loaded_by, replace_uses_in, substitute_and_fold):
6366         Declare.
6367         * tree-ssa.c (verify_use): Fix error message.
6368         (propagate_into_addr, replace_immediate_uses, get_eq_name,
6369         check_phi_redundancy, kill_redundant_phi_nodes,
6370         pass_redundant_phi): Remove.  Update all users.
6371         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
6372         add_type_alias, if necessary.
6373         * tree-vectorizer.h (struct _stmt_vect_info): Update
6374         documentation for field 'memtag'.
6375         * tree-vrp.c: New file.
6376         * tree.def (ASSERT_EXPR): Define.
6377         * tree.h (ASSERT_EXPR_VAR): Define.
6378         (ASSERT_EXPR_COND): Define.
6379         (SSA_NAME_VALUE_RANGE): Define.
6380         (struct tree_ssa_name): Add field 'value_range'.
6381         (PHI_REWRITTEN): Remove.
6382         (struct tree_phi_node): Remove field 'rewritten'.
6383         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
6384         -ftree-store-copy-prop): Document.
6385         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
6386         Document usage of update_ssa.
6387
6388 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
6389
6390         PR target/20814
6391         * config/rs6000/predicates.md (altivec_register_operand): Accept
6392         SUBREG.
6393         (and64_operand): Do not limit CONST_INT to mask64_operand.
6394         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
6395         (and_operand): Do not limit CONST_INT to mask_operand.
6396
6397 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
6398
6399         PR rtl-optimization/20466
6400         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
6401         for overlap of the address of each list member.
6402         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
6403
6404 2005-04-08  Mike Stump  <mrs@apple.com>
6405
6406         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
6407
6408         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
6409         instead of 4.
6410
6411 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
6412
6413         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
6414
6415         * function.c (push_function_context_to): Don't set
6416         contains_functions.
6417         * function.h (function): Remove contains_functions.
6418         (current_function_contains_functions): Remove.
6419
6420         * function.h (function): Remove instrument_entry_exit.
6421         (current_function_instrument_entry_exit): Remove.
6422
6423         * function.h (nonlocal_labels): Remove.
6424
6425         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
6426
6427         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
6428         (check_attr_value, write_attr_get, write_expr_attr_cache,
6429         find_attr, make_internal_attr): Don't reference negative_ok or
6430         unsigned_p.
6431         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
6432         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
6433         (ATTR_STATIC): Adjust the value.
6434
6435         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
6436
6437 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
6438
6439         * config/s390/tpf.h (ASM_SPEC): Define.
6440
6441 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
6442
6443         * tree-flow.h: Remove the prototype for
6444         redirect_immediate_uses.
6445         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
6446
6447 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
6448
6449         * arm.c (arm_const_double_by_parts): New function.
6450         * arm-protos.h (arm_const_double_by_parts): Add prototype.
6451         * arm.md (define_split for 64-bit constants): Add another one.
6452
6453 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
6454
6455         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
6456
6457 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6458
6459         * system.h: Revert last change.
6460
6461 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
6462
6463         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
6464         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
6465         (TARGET_SWITCHES): Delete.
6466         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
6467         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
6468         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
6469         * config/xtensa/xtensa.opt: New file.
6470
6471 2005-04-08  Ben Elliston  <bje@au.ibm.com>
6472
6473         * config/fp-bit.c: Include L_mul_tf in #endif comment.
6474         * config/fp-bit.h: Tidy comments.
6475
6476 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6477
6478         * system.h: Poison PARAMS.
6479
6480 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
6481
6482         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
6483         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
6484         (TARGET_SWITCHES): Delete.
6485         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
6486         * config/vax/vax.opt: New file.
6487
6488 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
6489
6490         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
6491
6492 2005-04-07  Ian Lance Taylor  <ian@airs.com>
6493
6494         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
6495         define.
6496         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
6497         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
6498         Likewise.
6499
6500 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
6501
6502         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
6503         all immediate uses in PHI nodes.
6504
6505 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
6506
6507         * arm.c (arm_const_double_inline_cost): Handle any constant by
6508         using gen_lowpart and gen_highpart_mode.
6509         (note_invalid_constants): All constants in an RTX with a constraint
6510         that permits memory are now pushed to the constant pool.
6511         (output_move_double): Delete code to handle reg to reg and
6512         constant to reg moves.
6513         (const_double_needs_minipool, output_mov_immediate): Delete.
6514         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
6515         CONST_INT and CONST_VECTOR.
6516         * arm.md (ANY64): New mode macro.
6517         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
6518         (movdf_soft_insn): Split reg-reg and const-reg moves.
6519         (split patterns for 64-bit constant and register moves): New.
6520         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
6521         (cirrus_movdf_hard_insn): Likewise.
6522         * fpa.md (movdf_fpa): Likewise.
6523         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
6524         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
6525         constraints.
6526         (movv2si_internal_2): Likewise.
6527         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
6528         (movdf_vfp): Likewise.
6529         * arm-protos.h (output_mov_immediate): Delete prototype.
6530
6531 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
6532
6533         PR target/20093
6534         * simplify-rtx.c (simplify_unary_operation_1): Check
6535         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
6536
6537 2005-04-06  James E Wilson  <wilson@specifixinc.com>
6538
6539         PR target/20717
6540         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
6541         ADDR_EXPR.
6542
6543 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
6544
6545         * coverage.h (GCOV_TYPE_NODE): Delete.
6546         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
6547         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
6548         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
6549         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
6550         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
6551
6552 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
6553
6554         PR other/20792
6555         * Makefile.in (gcc.pot): Remove options.c dependency.
6556         * optc-gen.awk: Don't quote help strings with N_().
6557
6558 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
6559
6560         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
6561         the function returns a pointer type.
6562
6563 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
6564
6565         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
6566         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
6567         * doc/invoke.texi: Documnet salias-max-implicit-fields.
6568         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
6569         explicit_uses members.
6570         (get_or_create_used_part_for): Initialize new fields.
6571         (fieldoff_compare): New function.
6572         (create_overlap_variables_for): Count number of fields, use
6573         heuristic to determine whether to create subvars for vars with
6574         only implicit uses.
6575         Sort the field list by offset and avoid creating duplicate SFT's.
6576
6577 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
6578
6579         * c.opt (-F): Remove trailing whitespace from help string.
6580         (-finput-charset): Use a tab to separate the switch name and help
6581         string.
6582         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
6583         (-ftree-vectorizer-verbose): Likewise.
6584
6585 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
6586
6587         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
6588         a PHI argument where a use occurs instead of all PHI arguments.
6589
6590 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
6591
6592         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
6593         scope.
6594
6595 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
6596
6597         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
6598         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
6599         config/bfin/bfin.h: Fix comment typos.
6600
6601 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
6602
6603         * doc/install.texi: Update the URL for Jacks.
6604         * doc/sourcebuild.texi: Likewise.
6605
6606 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6607
6608         PR target/17245
6609         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
6610         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
6611
6612 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
6613
6614         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
6615
6616 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
6617
6618         * config/v850/v850-protos.h (override_options): Delete.
6619         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
6620         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
6621         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
6622         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
6623         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
6624         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
6625         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
6626         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
6627         (OVERRIDE_OPTIONS): Delete.
6628         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
6629         (small_memory_info): Remove the value field.
6630         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
6631         TARGET_NO_APP_REGS.
6632         * config/v850/v850.c (small_memory): Remove the value field.
6633         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6634         (override_options): Delete.
6635         (v850_handle_memory_option, v850_handle_option): New functions.
6636         * config/v850/v850.opt: New file.
6637
6638 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
6639
6640         * config.host: Add a section for generic hosts, and a subsection
6641         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
6642         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
6643         * config/host-darwin.h: New.
6644         * config/x-darwin: New.
6645         * config/i386/host-i386-darwin.c: New.
6646         * config/i386/x-darwin: New.
6647         * config/rs6000/host-darwin.c: Include host-darwin.h.
6648         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
6649         (darwin_rs6000_gt_pch_use_address): Likewise.
6650         * config/rs6000/x-darwin: Change name of .o built, update
6651         dependencies for changes to rs6000/host-darwin.c.
6652
6653 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6654
6655         PR target/17824
6656         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
6657
6658 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
6659
6660         * tree-vect-analyze.c (vect_analyze_loop_form): Call
6661         split_loop_exit_edge instead of loop_split_edge_with.
6662
6663 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
6664
6665         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
6666         UNSPEC_SET_VSCR): New constants, used throughout.
6667         (*andc3_v4sf): New.
6668         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
6669         Replace with...
6670         (altivec_vspltis<VI_char>): ... this pattern, using
6671         a QImode const_int_operand for the immediate.
6672         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
6673         define_expands.
6674
6675 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6676
6677         PR target/17822
6678         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
6679
6680 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
6681
6682         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
6683
6684 2005-04-06  Ben Elliston  <bje@au.ibm.com>
6685
6686         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
6687         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
6688         macros as living in "this file" and not gcc.h.
6689
6690 2005-04-06  Ben Elliston  <bje@au.ibm.com>
6691
6692         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
6693         -ftree-live_range_split.  Perhaps renamed at some point?
6694
6695 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
6696
6697         PR target/20625
6698         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
6699         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
6700
6701 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
6702
6703         * tree-flow.h (number_of_iterations_cond): Declaration removed.
6704         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
6705         (number_of_iterations_special): New function.
6706         (number_of_iterations_exit): Use number_of_iterations_special.
6707         Use simplify_using_outer_evolutions only at -O3.
6708         (number_of_iterations_cond, tree_simplify_using_condition,
6709         simplify_using_initial_conditions, loop_niter_by_eval,
6710         compare_trees, can_count_iv_in_wider_type_bound,
6711         simplify_using_outer_evolutions): Use fold_build.
6712
6713 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
6714
6715         * doc/install.texi (Configuration): Document --with-java-home.
6716
6717 2005-04-05  Richard Henderson  <rth@redhat.com>
6718
6719         PR target/20342
6720         PR target/20447
6721         * config/i386/i386.c (print_operand): Handle vector zeros.
6722         (ix86_split_to_parts): Handle CONST_VECTOR.
6723         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
6724         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
6725         what modes to tie for MMX and SSE registers.
6726         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
6727         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
6728         to vector modes as well.
6729         * config/i386/predicates.md (const0_operand): Handle VOIDmode
6730         properly as an input mode.
6731
6732 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
6733
6734         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
6735
6736 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
6737
6738         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
6739
6740 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
6741
6742         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
6743         and local functions, set sse_nregs to 8 and float_in_sse.
6744         (function_arg_advance, function_arg): If float_in_sse, pass
6745         SFmode and DFmode arguments in SSE registers.
6746         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
6747
6748         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
6749         of -funit-at-a-time.
6750
6751 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
6752
6753         * config/i386/i386-protos.h (ix86_function_value): Accept two
6754         arguments, like the target macro.
6755         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
6756         * config/i386/i386.c (ix86_function_value): Accept the second
6757         argument of the target macro.
6758         (ix86_function_ok_for_sibcall): Pass a function pointer to
6759         ix86_function_value.
6760         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
6761         call to ix86_value_regno).
6762         (ix86_value_regno): Add support for returning floating point values
6763         in SSE registers.
6764
6765 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
6766
6767         PR tree-optimization/20076
6768         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
6769         that call __builtin_return or __builtin_apply_args.
6770
6771 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
6772
6773         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
6774         Use immediate use iterator.
6775         (stmt_is_bumper_for_loop): Use immediate use iterator.
6776         * predict.c (strip_builtin_expect): Use update_stmt.
6777         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
6778         on all elements of a STATEMENT_LIST.
6779         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
6780         (bsi_remove): Remove imm_use links and mark the stmt as modified.
6781         (bsi_replace): Mark stmt as modified and the update it.
6782         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
6783         (expand_complex_libcal): Call update_stmt.
6784         (expand_complex_comparison): Call mark_stmt_modified.
6785         (expand_complex_operations_1): Call update_stmt_if_modified.
6786         (expand_vector_operations_1): Call mark_stmt_modified.
6787         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
6788         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
6789         add_immediate_use, redirect_immediate_use,
6790         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
6791         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
6792         (mark_new_vars_to_rename): Call update_stmt.
6793         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
6794         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
6795         Ignore PHI nodes.
6796         (unmodify_stmt): Delete.
6797         (update_stmt): New.  Force an update of a stmt.
6798         (update_stmt_if_modified): update a stmt if it is out of date.
6799         (get_stmt_operands): Verify stmt is NOT modified.
6800         (stmt_modified_p): Update comment.
6801         (delink_imm_use): Remove a use node from its immuse list.
6802         (link_imm_use_to_list): Link a use node to a specific list.
6803         (link_imm_use): Link a node to the correct list.
6804         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
6805         it in the correct list, if appropriate.
6806         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
6807         (relink_imm_use): Link a use node in place of another node in a list.
6808         (relink_imm_use_stmt): LInk a node in place of another node, and set
6809         the stmt pointer.
6810         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
6811         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
6812         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
6813         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
6814         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
6815         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
6816         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
6817         (has_zero_uses): New.  Return true if there are no uses of a var.
6818         (has_single_use): New.  Return true if there is only a single use of a
6819         variable.
6820         (single_imm_use): New.  Return the simgle immediate use.
6821         (num_imm_uses): New.  Return the number of immediate uses.
6822         (get_v_must_def_ops): Use is now a pointer.
6823         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
6824         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
6825         the use node.
6826         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
6827         (delink_stmt_imm_use): Delink all immuses from a stmt.
6828         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
6829         * tree-flow.h (struct dataflow_d): Delete.
6830         (immediate_use_iterator_d): New.  Immediate use iterator struct.
6831         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
6832         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
6833         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
6834         iteration.
6835         (struct stmt_ann_d): Remove dataflow_t from struct.
6836         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
6837         (if_convertible_phi_p): Use FAST immuse iterator.
6838         (if_convertible_loop_p): Don't call compute_immediate_uses.
6839         (replace_phi_with_cond_modify_expr): Call update_stmt.
6840         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
6841         update_stmt_if_modified.
6842         (rewrite_all_into_ssa): Initialize ssa operands.
6843         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
6844         compute_immediate_uses.
6845         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
6846         ssa_property is available.
6847         (execute_one_pass):  Change parameters passed to execute_todo.
6848         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
6849         (remove_ssa_form): Call fini_ssa_operands.
6850         (insert_backedge_copies): Delete call to modify_stmt.
6851         * tree-phinodes.c (make_phi_node): Initialize use nodes.
6852         (release_phi_node): Delink any use nodes before releasing.
6853         (resize_phi_node): Relink any use nodes.
6854         (remove_phi_arg_num): Delink the use node.
6855         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
6856         (remove_all_phi_nodes_for): Release phi node first.
6857         * tree-pretty-print.c (dump_generic_node): Print stmt address.
6858         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
6859         (scalarize_use, scalarize_copy): Call update_stmt.
6860         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
6861         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
6862         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
6863         (ccp_initialize): Remove call to compute_immediate_uses.
6864         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
6865         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
6866         stmts.
6867         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
6868         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
6869         (eliminate_redundant_computations): Call mark_stmt_modified.
6870         (cprop_operand): Call mark_stmt_modified.
6871         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
6872         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
6873         (dse_optimize_stmt): Use new immuse interface.
6874         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
6875         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
6876         (substitute_single_use_vars): Use new immuse interface.
6877         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
6878         and compute_immediate_uses.
6879         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
6880         interface.
6881         (rewrite_mem_refs): Call update_stmt.
6882         (determine_lsm): Remove call to compute_imm_uses and free_df.
6883         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
6884         (try_unroll_loop_completely): Call update_stmt.
6885         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
6886         (rewrite_use_compare): Call update_stmt.
6887         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
6888         (rewrite_use) : Call update_stmt.
6889         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
6890         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
6891         update_stmt.
6892         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
6893         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
6894         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
6895         use nodes.
6896         (initialize_vuse_operand): New.  Initialize a vuse operand.
6897         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
6898         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
6899         (finalize_ssa_defs): Use stmt parameter.
6900         (correct_use_link): Ensure a use node is in the correct list, and has
6901         the correct stmt pointer.
6902         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
6903         finalize_ssa_v_must_defs): Also initialize use nodes.
6904         (finalize_ssa_stmt_operands): Pass extra stmt operands.
6905         (build_ssa_operands): Seperate parsing from final operand construction.
6906         (parse_ssa_operands): New.  Parse entry point for operand building.
6907         (swap_tree_operands): New.  Swap 2 tree operands.
6908         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
6909         operands.
6910         (get_expr_operands): Call swap_tree_operands when needed.
6911         (copy_virtual_operands): Use initialize routines for virtual use ops.
6912         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
6913         (verify_abort): New.  Issue imm_use error.
6914         (verify_imm_links): New Verify imm_use links for a var.
6915         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
6916         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
6917         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
6918         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
6919         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
6920         (NULL_USE_OPERAND_P) Define.
6921         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
6922         use node.
6923         (struct vuse_operand_type): New struct.
6924         (SET_USE): Call set_ssa_use_from_ptr.
6925         (USE_STMT): Define.
6926         (PHI_ARG_INDEX_FROM_USE): Define.
6927         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
6928         argument via SET_USE, not PHI_ARG_DEF_TREE.
6929         * tree-ssa-pre.c (eliminate): Call update_stmt.
6930         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
6931         call free_df.
6932         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
6933         (nearest_common_dominator_of_uses): Use imm_use iterator.
6934         (statement_sink_location): Use imm_use iterator and interface.
6935         (execute_sink_code): Don't call compute_immediate_uses or free-df.
6936         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
6937         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
6938         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
6939         (verify_ssa): Ensure no stmt is marked modify after optimization pass
6940         if new parameter is true.
6941         (init_tree_ssa): Don't initialize operand cache here.
6942         (delete_tree_ssa): Don't destroy operand cache here.
6943         (propagate_into_addr): Pass in a use pointer, return true if anything
6944         was changed.
6945         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
6946         (check_phi_redundancy): Use imm_use iterator.
6947         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
6948         free_df.
6949         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
6950         (release_ssa_name): Delink node and all elements in its imm_use list.
6951         * tree-tailcall.c (adjust_return_value): Call update_stmt.
6952         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
6953         * tree-vectorizer.c (need_imm_uses_for): Delete.
6954         (vectorize_loops): Dont call compute_immediate_uses or free_df.
6955         * tree.h (struct ssa_imm_use_d): Define.
6956         (SSA_NAME_IMM_USE_NODE): Define.
6957         (struct tree_ssa_name): Add imm_use node.
6958         (PHI_DF): Delete.
6959         (PHI_ARG_IMM_USE_NODE): Define.
6960         (struct phi_arg_d): Add imm_use node.
6961         (struct tree_phi_node): Remove struct dataflow_d element.
6962         (TDF_STMTADDR): Define.
6963
6964 2005-04-05  Dale Johannesen  <dalej@apple.com>
6965
6966         * doc/invoke.texi (Optimization Options):  Remove
6967         duplicate -fcse-follow-jumps.  Add -fweb.
6968         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
6969         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
6970
6971 2005-04-05  Per Bothner  <per@bothner.com>
6972
6973         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
6974         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
6975         (warn_uninit): Get EXPR_LOCUS from context now instead.
6976         This fixes a USE_MAPPED_LOCATION testsuite failure.
6977
6978         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
6979
6980 2005-04-05  Per Bothner  <per@bothner.com>
6981
6982         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
6983         of the artification 'return 0' in main() to BUILTINS_LOCATION.
6984         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
6985         before warning.
6986
6987 2004-04-05  Devang Patel  <dpatel@apple.com>
6988
6989         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
6990         (lhsr<mode>3): ... new name.
6991         (altivec_vsra<VI_char>): Rename to ..
6992         (ashr<mode>3): ... new name.
6993         * config/rs6000/rs6000.c (builtin_description): Rename shift
6994         operations.
6995
6996 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
6997
6998         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
6999         gen_lowpart_for_combine.
7000         * cse.c (gen_lowpart_if_possible): Move...
7001         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
7002         gen_lowpart_SUBREG.
7003         (gen_lowpart_no_emit_general): Use it.
7004
7005 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7006
7007         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
7008         overriding.
7009
7010 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
7011
7012         * system.h: Fix typo.
7013
7014 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7015
7016         * config/bfin/bfin-modes.def: New file.
7017         * config/bfin/bfin-protos.h: New file.
7018         * config/bfin/bfin.c: New file.
7019         * config/bfin/bfin.h: New file.
7020         * config/bfin/bfin.md: New file.
7021         * config/bfin/bfin.opt: New file.
7022         * config/bfin/crti.s: New file.
7023         * config/bfin/crtn.s: New file.
7024         * config/bfin/elf.h: New file.
7025         * config/bfin/lib1funcs.asm: New file.
7026         * config/bfin/predicates.md: New file.
7027         * config/bfin/t-bfin: New file.
7028         * config/bfin/t-bfin-elf: New file.
7029         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
7030         Document new attributes.
7031         (interrupt, interrupt_handler, saveall): Update documentation for
7032         these attributes.
7033         * doc/install.texi (Specific): Add entry for the Blackfin.
7034         * doc/invoke.texi (Blackfin Options): New section.
7035         * doc/md.texi (Blackfin family): New section to document constraints.
7036         * config.gcc: Add bfin*-* and bfin*-elf configurations.
7037
7038 2005-04-05  Olivier Hainque  <hainque@adacore.com>
7039
7040         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
7041         match what the system unwinder expects.
7042         * config/mips/mips.c (mips_frame_set): If we're saving the return
7043         address register and the dwarf return address column number differs
7044         from the hard register number, adjust the note reg to refer to the
7045         former.
7046
7047 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
7048
7049         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
7050         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
7051         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
7052         (processor_type): New enum.
7053         (mn10300_processor): New variable.
7054         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
7055         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
7056         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
7057         (PROCESSOR_DEFAULT): New macro.
7058         * config/mn10300/mn10300.c (mn10300_processor): New variable.
7059         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7060         (mn10300_handle_option, mn10300_override_options): New functions.
7061         * config/mn10300/mn10300.opt: New file.
7062
7063 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7064             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
7065
7066         PR tree-optimization/19903
7067         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
7068         that don't fit in their type after conversion.
7069
7070 2005-04-05  Uros Bizjak <uros@kss-loka.si>
7071
7072         PR target/20421
7073         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
7074         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
7075         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
7076         flag here. Implement using define_insn_and_split.
7077         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
7078         (frndintxf2_mask_pm_i387): New insn patterns.
7079         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
7080         Do not set ix86_optimize_mode_switching flag.
7081         (ceilsf2, ceildf2, ceilxf2): Same.
7082         (btruncsf2, btruncdf2, btruncxf2): Same.
7083         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
7084
7085 2005-04-05  Ian Lance Taylor  <ian@airs.com>
7086
7087         PR debug/9963
7088         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
7089         i386_pe_record_external_function.
7090         (i386_pe_record_external_function): Update declaration.
7091         * config/i386/winnt.c (struct extern_list): Add decl field.
7092         (i386_pe_record_external_function): Add decl parameter.
7093         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
7094         identifier.
7095         * config/i386/i386-protos.h (i386_pe_record_external_function):
7096         Update declaration.
7097
7098 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
7099
7100         * config/m68k/m68k-protos.h: Add a prototype for
7101         valid_dbcc_comparison_p_2.
7102         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
7103         extend_operator, const_uint32_operand, const_sint32_operand,
7104         general_src_operand, nonimmediate_src_operand,
7105         memory_src_operand, post_inc_operand, pre_dec_operand,
7106         pcrel_address): Move to predicates to predicates.md.
7107         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
7108         * config/m68k/m68k.md: Include predicates.md.
7109         * config/m68k/predicates.md: New.
7110
7111 2005-04-04  Roger Sayle  <roger@eyesopen.com>
7112
7113         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
7114
7115         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
7116
7117 2005-04-04  Ian Lance Taylor  <ian@airs.com>
7118
7119         * c-typeck.c (struct c_switch): Rename switch_stmt field to
7120         switch_expr.
7121         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
7122         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
7123         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
7124         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
7125         * c-common.c (c_do_switch_warnings_1): New static function broken
7126         out of c_do_switch_warnings.
7127         (c_do_switch_warnings): Call c_do_switch_warnings_1.
7128         (c_do_switch_expr_warnings): New function.
7129         * c-common.h (c_do_switch_expr_warnings): Declare.
7130
7131 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
7132             Daniel Jacobowitz  <dan@codesourcery.com>
7133
7134         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
7135         trapping divide.
7136         * rtlanal.c (may_trap_p): Same.
7137
7138 2005-04-04  Dale Johannesen  <dalej@apple.com>
7139
7140         * ChangeLog:  remove reference to ChangeLog.12.
7141
7142 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
7143
7144         CRIS epilogue as RTL.
7145         * config/cris/cris.md: Change all 0 in unspec 0 to
7146         CRIS_UNSPEC_PLT.
7147         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
7148         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
7149         patterns.
7150         ("return"): Change to define_expand.  Call cris_expand_return for
7151         actual expansion.
7152         ("*return_expanded"): New pattern.
7153         ("epilogue"): New define_expand.
7154         * config/cris/cris.h (PREDICATE_CODES): Add
7155         cris_load_multiple_op.
7156         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
7157         type.
7158         (enum cris_retinsn_type): New.
7159         (struct machine_function): New member return_type.
7160         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
7161         (cris_target_asm_function_epilogue): Remove, moving RTLified
7162         contents to...
7163         (cris_expand_epilogue): New function.
7164         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
7165         (cris_gen_movem_load, cris_load_multiple_op)
7166         (cris_return_address_on_stack_for_return, cris_expand_return): New
7167         functions.
7168         (cris_target_asm_function_prologue)
7169         (cris_initial_frame_pointer_offset): Call
7170         cris_reg_saved_in_regsave_area instead of complicated expression.
7171         Call cris_return_address_on_stack instead of an expression.
7172         (cris_print_operand) <case 'o', case 'O'>: New cases.
7173         (cris_return_address_on_stack): Change return-type to bool.
7174         (cris_simple_epilogue): Ditto.  Return false if registers are
7175         saved.
7176         * config/cris/cris-protos.h (cris_simple_epilogue)
7177         (cris_return_address_on_stack): Adjust prototype return type.
7178         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
7179         (cris_return_address_on_stack_for_return): New prototypes.
7180
7181 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
7182
7183         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
7184         gpr_or_int12_operand.
7185
7186         * config/frv/frv-protos.h: Add a prototype to
7187         frv_legitimate_memory_operand and frv_const_unspec_p.
7188         (frv_unspec): Move from frv.c.
7189         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
7190         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
7191         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
7192         gpr_or_fpr_operand, gpr_or_int12_operand,
7193         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
7194         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
7195         int6_operand, int5_operand, uint5_operand, uint4_operand,
7196         uint1_operand, int_2word_operand, uint16_operand,
7197         upper_int16_operand, integer_register_operand,
7198         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
7199         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
7200         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
7201         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
7202         move_destination_operand, movcc_fp_destination_operand,
7203         frv_function_symbol_referenced_p, move_source_operand,
7204         condexec_dest_operand, condexec_source_operand,
7205         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
7206         const_unspec_operand, gpr_or_memory_operand,
7207         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
7208         icc_operand, fcc_operand, cc_operand, icr_operand,
7209         fcr_operand, cr_operand, call_operand, sibcall_operand,
7210         symbolic_operand, relational_operator,
7211         integer_relational_operator, float_relational_operator,
7212         ccr_eqne_operator, minmax_operator,
7213         condexec_si_binary_operator, condexec_si_media_operator,
7214         condexec_si_divide_operator, condexec_si_unary_operator,
7215         condexec_sf_conv_operator, condexec_sf_add_operator,
7216         condexec_memory_operand, intop_compare_operator, acc_operand,
7217         even_acc_operand, quad_acc_operand, accg_operand: Move to
7218         predicates.md.
7219         * config/frv/frv.h (PREDICATE_CODES): Remove.
7220         * config/frv/frv.md: Include predicates.md.
7221         * config/frv/predicates.md: New.
7222
7223 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
7224
7225         PR target/19537
7226         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
7227         * tree-ssa-loop-ivopts.c: Include langhooks.h.
7228         (add_standard_iv_candidates_for_size): New function, extracting code
7229         from add_standard_iv_candidates and parameterizing it by type size.
7230         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
7231
7232 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
7233
7234         * system.h (GCOV_SIZE_TYPE): Unposion.
7235         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
7236         (GCOV_TYPE_SIZE): ...this new macro.
7237         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
7238         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
7239         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
7240         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
7241         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
7242         instead of unsigned_intSI_type_node.
7243         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
7244         (rtl_gen_one_value_profiler_no_edge_manipulation)
7245         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
7246         * value-prof.c: Include coverage.h.
7247
7248 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
7249             Diego Novillo <dnovillo@redhat.com>
7250
7251         Fix PR tree-optimization/20703
7252         Fix PR tree-optimization/20725
7253
7254         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
7255         (create_expression_by_pieces): Ditto.
7256         (valid_in_set): Ditto. Also handle tcc_declaration.
7257         (find_or_generate_expression): Handle comparison class.
7258         (insert_into_preds_of_block): Ditto.
7259         (insert_aux): Ditto.
7260         (create_value_expr_from): Handle comparison class, recursively
7261         handle reference nodes.
7262         (compute_avail): Handle comparison classes, rewrite a little cleaner.
7263         (execute_pre): Fix spacing.
7264         (do_fre): Renamed to execute_fre.
7265
7266 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7267
7268         * doc/invoke.texi (SPARC options): Document that
7269         -mlittle-endian is not supported on Linux either.
7270
7271 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7272
7273         PR target/4198
7274         PR target/12027
7275         * config.gcc (Obsolete configurations): Remove
7276         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
7277         (sparclite-*-coff*): Delete.
7278         (sparclite-*-elf*): Likewise.
7279         (sparc86x-*-elf*): Likewise.
7280         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
7281         * config/sparc/lite.h: Delete.
7282         * config/sparc/litecoff.h: Likewise.
7283         * config/sparc/liteelf.h: Likewise.
7284         * config/sparc/sp86x-elf.h: Likewise.
7285         * config/sparc/t-sparclite: Likewise.
7286         * config/sparc/t-sp86x: Likewise.
7287
7288 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
7289
7290         * config/s390/s390-protos.h: (s390_comparison,
7291         s390_alc_comparison, s390_slb_comparison, const0_operand,
7292         consttable_operand, larl_operand, s_operand,
7293         shift_count_operand, bras_sym_operand, load_multiple_operation,
7294         store_multiple_operation, s390_plus_operand): Remove prototypes.
7295         (s390_legitimate_address_without_index_p): New prototype.
7296         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
7297         to s390.h.
7298         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
7299         const0_operand, consttable_operand, larl_operand, s_operand,
7300         shift_count_operand, bras_sym_operand, load_multiple_operation,
7301         store_multiple_operation, s390_plus_operand): Move to
7302         predicates.md.
7303         (check_mode): Remove.
7304         (s390_branch_condition_mask): Remove 'static'. Move prototype to
7305         s390-protos.h.
7306         (s390_legitimate_address_without_index_p): New.
7307         * config/s390/s390.h (PREDICATE_CODES): Remove.
7308         * config/s390/s390.md: Include predicates.md.
7309         * config/s390/predicates.md: New.
7310
7311 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7312
7313         PR target/20446
7314         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
7315         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
7316         (NEED_INDICATE_EXEC_STACK): Define to 1.
7317         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
7318         (NEED_INDICATE_EXEC_STACK): Define to 1.
7319         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
7320         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
7321         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
7322         (pic_helper_emitted_p): New global.
7323         (emit_pic_helper): New function extracted from...
7324         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
7325         Do not call emit_pic_helper if delay_pic_helper is true.
7326         (sparc_expand_prologue): Pass 'false' to load_pic_register.
7327         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
7328         (sparc_file_end): New function.
7329
7330 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
7331
7332         * config/mcore/mcore-protos.h: Remove the prototypes for
7333         mcore_arith_reg_operand, mcore_general_movsrc_operand,
7334         mcore_general_movdst_operand, mcore_reload_operand,
7335         mcore_arith_J_operand, mcore_arith_K_operand,
7336         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
7337         mcore_arith_K_S_operand, mcore_arith_imm_operand,
7338         mcore_arith_any_imm_operand, mcore_arith_O_operand,
7339         mcore_literal_K_operand, mcore_addsub_operand,
7340         mcore_compare_operand, mcore_load_multiple_operation,
7341         mcore_store_multiple_operation, mcore_call_address_operand.
7342         Add a prototype for const_ok_for_mcore.
7343         * config/mcore/mcore.c (mcore_call_address_operand,
7344         mcore_general_movsrc_operand, mcore_general_movdst_operand,
7345         mcore_arith_reg_operand, mcore_reload_operand,
7346         mcore_arith_J_operand, mcore_arith_K_operand,
7347         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
7348         mcore_arith_M_operand, mcore_arith_imm_operand,
7349         mcore_arith_any_imm_operand, mcore_arith_O_operand,
7350         mcore_literal_K_operand, mcore_addsub_operand,
7351         mcore_compare_operand, mcore_load_multiple_operation,
7352         mcore_store_multiple_operation): Move to predicates.md.
7353         (const_ok_for_mcore): Export.
7354         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
7355         * config/mcore/mcore.md: Include predicates.md.
7356         * config/mcore/predicates.md: New.
7357
7358         * config/mcore/predicates.md: Fix a comment typo.
7359
7360 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
7361             Adrian Straetling  <straetling@de.ibm.com>
7362
7363         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
7364         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
7365         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
7366         attribute.
7367         ("imul"): Removed from "type" attribute.
7368         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
7369         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
7370         Changed type to imulsi.
7371         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
7372
7373 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
7374
7375         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
7376         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
7377         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
7378         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
7379         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
7380         (TARGET_SWITCHES, mcore_stack_increment_string)
7381         (TARGET_OPTIONS): Delete.
7382         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
7383         than *_BIT constants.
7384         (TARGET_8ALIGN): #undef old definition before redefining to 1.
7385         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
7386         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
7387         (mcore_override_options): Delete mcore_stack_increment code.
7388         Change use of M340_BIT to MASK_M340.
7389         * config/mcore/mcore.opt: New file.
7390
7391 2005-04-04  Ian Lance Taylor  <ian@airs.com>
7392
7393         * config/arm/arm.c (replace_symbols_in_block): Remove static
7394         function.
7395
7396 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
7397
7398         * config/fr30/fr30-protos.h: Remove the prototypes for
7399         stack_add_operand, add_immediate_operand,
7400         high_register_operand, low_register_operand, call_operand,
7401         di_operand, and nonimmediate_di_operand.
7402         * config/fr30/fr30.c (stack_add_operand,
7403         add_immediate_operand, high_register_operand,
7404         low_register_operand, call_operand, di_operand,
7405         nonimmediate_di_operand): Move to predicates.md.
7406         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
7407         * config/fr30/fr30.md: Include predicates.md.
7408         * config/fr30/predicates.md: New.
7409
7410         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
7411         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
7412         mcore_call_address_operand.
7413
7414         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
7415         general_movsrc_operand.
7416
7417 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
7418
7419         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
7420         after freeing.
7421
7422 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
7423
7424         PR target/14812
7425         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
7426         a negated value.
7427
7428 2005-04-04  Richard Henderson  <rth@redhat.com>
7429             Jakub Jelinek  <jakub@redhat.com>
7430
7431         PR rtl-optimization/16104
7432         * fold-const.c (fold_unary): Fix folding of vector conversions.
7433
7434 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
7435
7436         * config.gcc (xstormy16-*-elf): Set extra_options.
7437         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
7438         * config/stormy16/stormy16.opt: New file.
7439
7440 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
7441
7442         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
7443         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
7444         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
7445         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
7446         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
7447         (TARGET_UNIX_ASM): Delete.
7448         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
7449         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
7450         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
7451         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7452         * config/pdp11/pdp11.opt: New file.
7453
7454 2005-04-03  Roger Sayle  <roger@eyesopen.com>
7455             Alexandre Oliva  <aoliva@redhat.com>
7456
7457         PR c++/19199
7458         * fold-const.c (non_lvalue): Split tests into...
7459         (maybe_lvalue_p): New function.
7460         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
7461         C++ front-end prior to lowering into gimple form.
7462
7463 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7464
7465         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
7466         BUILT_IN_STRNCASECMP): New.
7467         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
7468         and strndup.
7469
7470 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
7471
7472         PR target/14812
7473         * arm.md (addsi3_compare0_for_combiner): Delete.
7474         (addsi3_compare0_scratch_for_combiner): Delete.
7475         (cmpsi_neg_shiftsi): Delete.
7476         (compare_negsi_si): New pattern.
7477         (cmpsi_negshiftsi_si): New pattern.
7478         (negated_cbranchsi4): Restrict to equality_operator.
7479
7480         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
7481         template.
7482
7483 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
7484
7485         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
7486         Fix comment typos.
7487
7488         * doc/install.texi: Fix a typo.
7489
7490 2005-04-03  Steven Bosscher  <stevenb@suse.de>
7491
7492         PR middle-end/20648
7493         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
7494         a computed goto if the edge to the computed goto block has
7495         incoming abnormal edges.  Clarify how the function works.
7496
7497 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
7498
7499         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
7500         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
7501         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
7502         hash_scan_set, reg_set_between_after_reload_p,
7503         reg_used_between_after_reload_p, get_avail_load_store_reg,
7504         eliminate_partially_redundant_load): Likewise.
7505         * postreload.c (reload_cse_simplify_set,
7506         reload_combine_note_use): Likewise.
7507         * predict.c (predict_insn, expected_value_to_br_prob,
7508         propagate_freq, expensive_function_p): Likewise.
7509         * print-rtl.c (print_rtx): Likewise.
7510         * profile.c (instrument_edges, instrument_values,
7511         compute_branch_probabilities, branch_prob, union_groups,
7512         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
7513         * protoize.c (in_system_include_dir, file_could_be_converted,
7514         file_normally_convertible, gen_aux_info_file, seek_to_line,
7515         do_cleaning): Likewise.
7516         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
7517         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
7518         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
7519
7520 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
7521
7522         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
7523         * modulo-sched.c (undo_replace_buff_elem): New structure.
7524         (kernel_number_of_cycles, ps_unschedule_node,
7525         undo_generate_reg_moves,free_undo_replace_buff,
7526         undo_permute_partial_schedule,  loop_single_full_bb_p,
7527         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
7528         build_loops_structure, get_sched_window): New.
7529         (generate_reg_moves): Return undo_replace_buff_elem and other
7530         fixes.
7531         (generate_prolog_epilog): Remove old loop versioning.
7532         (sms_schedule): Use loop information and loop_version.
7533         (sms_schedule_by_order): Split part of it to get_sched_window.
7534         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
7535         cfg_layout_finalize and free_dominance_info before/after SMS.
7536
7537 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
7538
7539         * cfghooks.c (lv_flush_pending_stmts,
7540         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
7541         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
7542         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
7543         lv_add_condition_to_bb,
7544         lv_adjust_loop_header_phi, extract_cond_bb_edges,
7545         flush_pending_stmts): New in cfg_hooks structure.
7546         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
7547         extract_cond_bb_edges, lv_adjust_loop_header_phi,
7548         lv_add_condition_to_bb): New declarations.
7549         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
7550         bool.
7551         (loop_version): Declare.
7552         * cfgloopmanip.c (cfghooks.h): Include.
7553         (duplicate_loop_to_header_edge): Change return type to bool.
7554         (loop_version, lv_adjust_loop_entry_edge): Move here.
7555         * cfgrtl.c (cfgloop.h): Include.
7556         (rtl_verify_flow_info_1): Fix.
7557         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
7558         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
7559         initialization.
7560         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
7561         tree_lv_add_condition_to_bb): New.
7562         (tree_cfg_hooks): Add new hooks to initialization.
7563         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
7564         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
7565
7566 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
7567
7568         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
7569         xstormy16_below100_or_register,
7570         xstormy16_splittable_below100_or_register, and
7571         nonimmediate_nonstack_operand.
7572
7573         * config/stormy16/stormy16-protos.h: Remove the prototypes for
7574         xstormy16_ineqsi_operator, equality_operator,
7575         inequality_operator, shift_operator,
7576         xstormy16_below100_operand, xstormy16_below100_or_register,
7577         xstormy16_splittable_below100_or_register,
7578         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
7579         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
7580         equality_operator, inequality_operator,
7581         xstormy16_below100_operand, xstormy16_below100_or_register,
7582         xstormy16_splittable_below100_or_register,
7583         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
7584         nonimmediate_nonstack_operand, shift_operator): Move to
7585         predicates.md.
7586         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
7587         * config/stormy16/stormy16.md: Include predicates.md.
7588         * config/stormy16/predicates.md: New.
7589
7590 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7591
7592         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
7593         small_int, large_int, reg_or_0_operand, simple_memory_operand,
7594         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
7595         move_operand, power_of_2_operand): Move to predicates.md.
7596         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
7597         PREDICATE_CODE): Remove.
7598         * config/iq2000/iq2000.md: Include predicates.md.
7599         * config/iq2000/predicates.md: New.
7600
7601 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
7602
7603         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
7604         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
7605         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
7606         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
7607         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
7608         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
7609         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
7610         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
7611         (TARGET_M68HC11): Delete.
7612         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
7613         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
7614         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
7615         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
7616         (nb_soft_regs): Delete.
7617         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
7618         (m68hc11_override_options): Remove the code that caters for MASK_M6811
7619         and MASK_M6812 being set simultaneously.  Change the code that sets
7620         the default m68hc11_soft_reg_count to use integers instead of strings.
7621         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
7622         m68hc11_soft_reg_count (which now has an int type) as the number
7623         of soft registers.
7624         * config/m68hc11/m68hc11.opt: New file.
7625
7626 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7627
7628         * config/fr30/fr30.h (PREDICATE_CODES): Remove
7629         fp_displacement_operand, sp_displacement_operand.
7630
7631         * config/m68hc11/m68hc11-protos.h: Add a prototype for
7632         m68hcc_auto_inc_p.
7633         Remove the prototypes for tst_operand, cmp_operand,
7634         stack_register_operand, d_register_operand,
7635         hard_addr_reg_operand, splitable_operand,
7636         m68hc11_logical_operator, m68hc11_arith_operator,
7637         m68hc11_non_shift_operator, m68hc11_shift_operator,
7638         m68hc11_unary_operator, m68hc11_eq_compare_operator,
7639         non_push_operand, hard_reg_operand, and
7640         reg_or_some_mem_operand.
7641         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
7642         extern.
7643         (tst_operand, cmp_operand, non_push_operand,
7644         splitable_operand, reg_or_some_mem_operand,
7645         stack_register_operand, d_register_operand,
7646         hard_addr_reg_operand, hard_reg_operand,
7647         m68hc11_eq_compare_operator, m68hc11_logical_operator,
7648         m68hc11_arith_operator, m68hc11_non_shift_operator,
7649         m68hc11_shift_operator, m68hc11_unary_operator): Move to
7650         predicates.md.
7651         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
7652         * config/m68hc11/m68hc11.md: Include predicates.md.
7653         * config/m68hc11/predicates.md: New.
7654
7655 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
7656
7657         PR debug/19345
7658         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
7659         change checked in along with 2005-03-03's patch for debug/20253.
7660         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
7661         (remap_decl): Insert type decl in map earlier.
7662
7663 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
7664
7665         PR tree-optimization/20640
7666         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
7667         post-dominator if it has phi nodes.
7668         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
7669         before dead statements.
7670
7671 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
7672
7673         PR middle-end/20491
7674         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
7675
7676 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
7677
7678         PR rtl-optimization/20290
7679         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
7680         in every iteration if the entry point is the exit test.
7681
7682 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
7683
7684         * config/cris/cris.md (attribute "length"): Define.
7685
7686 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
7687
7688         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
7689         (word_offset_memref_operand): New.
7690         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
7691         (indexed_or_indirect_operand): Delete.
7692         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
7693         (indexed_or_indirect_operand): Delete.
7694
7695         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
7696
7697         PR 20650
7698         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
7699         a register.
7700
7701         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
7702         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
7703
7704 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7705
7706         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
7707
7708 2005-04-01  Ian Lance Taylor  <ian@airs.com>
7709
7710         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
7711         (rus, prus): Remove static variables.
7712         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
7713         (process_command): Permit report_times and use_pipes together.
7714
7715 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
7716
7717         * c-decl.c (validate_proto_after_old_defn): Look at
7718         TYPE_MAIN_VARIANT of argument types.
7719
7720 2005-04-01  Paul Brook  <paul@codesourcery.com>
7721
7722         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
7723         (arm_output_function_epilogue): Allow call_via_SP.
7724         (thumb_call_via_reg, arm_file_end): Ditto.
7725         * config/arm/arm.h (struct machine_function): Include space for SP.
7726         (thumb_call_via_label): Update declaration.
7727
7728 2005-04-01  Ian Lance Taylor  <ian@airs.com>
7729
7730         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
7731         doing a peephole optimization, once again put any notes in the
7732         proper position.
7733
7734 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7735
7736         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
7737
7738 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
7739
7740         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
7741         (block_alloc, find_free_reg): Likewise.
7742         * loop-doloop.c (doloop_modify): Likewise.
7743         * loop-invariant.c (record_use): Likewise.
7744         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
7745         get_iv_value, canon_condition, eliminate_implied_condition,
7746         eliminate_implied_condition, simplify_using_initial_values,
7747         shorten_into_mode, canonicalize_iv_subregs,
7748         iv_number_of_iterations): Likewise.
7749         * loop-unroll.c (expand_var_during_unrolling): Likewise.
7750         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
7751         unswitch_loop): Likewise.
7752         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
7753         move_movables, replace_call_address, find_and_verify_loops,
7754         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
7755         record_giv, final_giv_value, general_induction_var,
7756         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
7757         loop_giv_dump): Likewise.
7758
7759         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
7760         GCOV_CHECK_WRITING): Remove.
7761         (gcov_position, gcov_rewrite): Use gcc_assert.
7762         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
7763         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
7764         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
7765         gcc_assert.
7766
7767 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7768
7769         * tree-inline.c: Fix a typo.
7770
7771 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
7772
7773         * configure.ac (enable-checking): Explicitly set all variables for
7774         collective switch values.  Alphabetize variables. Rename
7775         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
7776         synonym for 'no'.
7777         * doc/install.texi (enable-checking): Update documentation.
7778         * configure: Rebuilt.
7779
7780 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7781
7782         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
7783         possible.
7784
7785 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
7786
7787         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
7788         Also reject cases where this pattern will cause load delay stalls
7789         unless optimizing for size and it will produce a shorter sequence.
7790         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
7791         variants to avoid pre-adjusting the base when possible.
7792
7793 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
7794
7795         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
7796         the frame and argument pointers.
7797         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
7798         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
7799         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
7800         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
7801         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
7802         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
7803
7804 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
7805
7806         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
7807         with entry for selectany attribute.
7808         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
7809         Declare.
7810         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
7811         (i386_pe_asm_named_section): Handle sections generated by
7812         selectany attribute.
7813         * doc/extend.texi (selectany): Document attribute.
7814
7815 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
7816             Jan Hubicka  <jh@suse.cz>
7817
7818         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
7819         to fix addresses involving EBP and ESP.
7820         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
7821         for SUBREGed registers.
7822         (legitimate_address_p): Accept SUBREGed registers.
7823
7824 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
7825
7826         PR c++/19406
7827         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
7828         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
7829         for FIELD_DECLs.
7830
7831 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7832
7833         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
7834
7835 2005-04-01  James E Wilson  <wilson@specifixinc.com>
7836
7837         PR c++/20505
7838         * dwarf2out.c (rtl_for_decl_init): New function.
7839         (rtl_for_decl_location): Extracted from here.
7840         (tree_add_const_value_attribute): Call rtl_for_decl_init and
7841         add_const_value_attribute.  Delete initializer_constant_valid_p call.
7842
7843 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7844
7845         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
7846         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
7847         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
7848         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
7849         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
7850         config/i386/i386.md, config/rs6000/predicates.md,
7851         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
7852         config/s390/s390.c, config/stormy16/stormy16.c,
7853         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
7854         typos.
7855
7856 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
7857
7858         PR c/17855
7859         * gimplify.c (gimplify_expr): Create a temporary for lvalue
7860         COND_EXPR and CALL_EXPR.
7861
7862 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7863
7864         PR target/20632
7865         * genautomata.c (first_cycle_unit_presence): Check all alternative
7866         states for unit presence.
7867
7868         * doc/md.texi: Remove remark about impossibility to query unit
7869         presence in non nondeterministic automaton state.
7870
7871         * config/ia64/ia64.c (get_template): Change order of unit querying.
7872
7873 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7874
7875         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
7876         obsolete comment.
7877
7878 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
7879
7880         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
7881         flag for edges outside any loops.
7882
7883 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
7884
7885         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
7886
7887 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7888
7889         * tree-ssa-alias.c: Follow spelling conventions.
7890         * doc/tree-ssa.texi: Fix a typo.
7891
7892 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
7893
7894         * postreload-gcse.c: Include target.h.
7895         (gcse_after_reload_main): Return early if we cannot modify jumps.
7896         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
7897
7898 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
7899
7900         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
7901         expensive operations.
7902
7903 2005-03-31  Ian Lance Taylor  <ian@airs.com>
7904
7905         * collect2.c (lderrout): New variable.
7906         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
7907         if it is set, to stderr.
7908         (handler): Unlink lderrout if it is set.
7909         (dump_file): Add "to" parameter.  Change all callers.
7910         (main): Initialize lderrout.
7911         (collect_execute): Add errname parameter.  Change all callers.
7912         Rename redir parameter to outname.  Never pass
7913         PEX_STDERR_TO_STDOUT to pex_run.
7914         * collect2.h (collect_execute, dump_file): Update declarations.
7915         * tlink.c (tlink_execute): Add errname parameter.  Change all
7916         callers.
7917         (do_tlink): Check lderrout as well as ldout.
7918
7919 2005-03-31  Caroline Tice  <ctice@apple.com>
7920
7921         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
7922         (bb-reorder.o): Add errors.h to list of requirements.
7923         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
7924         profiledbootstrap flags.
7925         * bb-reorder.c (errors.h): Add new include.
7926         (struct bbro_basic_block_data_def): Add new field, in_trace.
7927         (add_unlikely_executed_notes):  Remove function.
7928         (mark_bb_for_unlikely_executed_section): Remove function.
7929         (insert_section_boundary_note): New function.
7930         (verify_hot_cold_block_grouping): New function.
7931         (push_to_next_round_p): Remove variables and tests that push all
7932         cold blocks to last round.
7933         (find_traces): Remove code that added extra round of trace finding
7934         when doing partitioning.
7935         (find_traces_1_round) :  Remove variable last_round;  add code to
7936         update new struct field, in_trace; correct trace_length where it was
7937         incorrect before (after call to copy_bb); change code that pushed all
7938         cold blocks to last round. Instead verify that all blocks going into
7939         a trace belong in the same partition.
7940         (connect_traces): Modify to connect the traces in two passes, if the
7941         function contains both hot and cold blocks.  The first pass connects
7942         all the traces for blocks in the partition that the first block in
7943         the function belongs to; the second pass connnects all the traces
7944         containing blocks that belong in the other partition.
7945         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
7946         code that automatically put the first block in a function into the
7947         hot partition if the function had any hot blocks.
7948         (fix_crossing_unconditional_branches): Check number of succ edges
7949         before attempting to get one.
7950         (fix_edges_for_rarely_executed_code):  Update comment describing
7951         function.
7952         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
7953         remove call to add_unlikely_executed_notes; add call to
7954         verify_hot_cold_block_grouping.
7955         (duplicate_computed_gotos): Don't change computed goto if it's a
7956         crossing edge.
7957         (partition_hot_cold_basic_blocks):  Update function comment.
7958         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
7959         condition.
7960         (try_forward_edges): Likewise.
7961         (merge_blocks_move_predecessor_nojumps): Likewise.
7962         (merge_blocks_move_successor_nojumps): Likewise.
7963         (merge_blocks_move): Likewise.
7964         (try_crossjump_bb): Likewise.
7965         * cfglayout.c (update_unlikely_executed_notes): Remove function.
7966         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
7967         notes to cold bb's; remove call to update_unlikely_executed_notes.
7968         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7969         NOTE_INSN_SWITCH_TEXT_SECTIONS.
7970         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
7971         function declaration.
7972         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
7973         from consideration.
7974         (rtl_can_merge_blocks): Remove redundancy from condition.
7975         (try_redirect_by_replacing_jump): Likewise.
7976         (force_nonfallthru_and_redirect): Remove code for adding
7977         UNLIKELY_EXECUTED_CODE notes to cold bb's.
7978         (commit_one_edge_insertion): Likewise.
7979         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
7980         * dbxout.c (FORCE_TEXT): Replace function_section with
7981         current_function_section.
7982         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
7983         function, switch_text_section.
7984         (struct xcoff_debug): Likewise.
7985         (dbxout_function_end): Add code to put out label diffs for both
7986         hot and cold sections.
7987         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
7988         for new debug_hooks funciton, switch_text_section..
7989         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
7990         switch_text_section.
7991         * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
7992         dw_fde_hot_section_label, dw_fde_hot_section_end_label,
7993         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
7994         dw_fde_switched_sections.
7995         (output_call_frame_info):  Add test to see if function switches text
7996         sections in the middle; if so, use appropriate extra hot and cold
7997         section labels to compute size deltas for the hot and cold sections.
7998         (dwarf2out_begin_prologue): Add code to initialize new fields in
7999         dw_fde_struct.
8000         (dwarf2out_switch_text_section): New function (invoked through
8001         debug_hook); updates new fields in dw_fde_struct appropriately and
8002         increments separate_line_info_table_in_use.
8003         (dwarf2_debug_hooks): Initialize switch_text_section function to be
8004         dwarf2out_switch_text_section.
8005         (struct var_loc_node): Add new field, section_label.
8006         (output_aranges): Add code to check whether in hot or cold section and
8007         use the appropriate label in calculating deltas.
8008         (output_ranges): Likewise.
8009         (output_line_info): Add code to check which section we're in and
8010         use appropriate hot/cold label.
8011         (add_location_or_constant_value_attribute): Likewise.
8012         (gen_subprogam_die): Modify arange attributes to use correct labels.
8013         (dwarf2out_begin_block): Change call to function_section into call to
8014         current_function_section.
8015         (dwarf2out_end_block): Likewise.
8016         (dwarf2out_source_line): Likewise.
8017         (dwarf2out_var_location): Add code to check whether in hot or cold
8018         section and use the appropriate label.
8019         * except.c (output_function_exception_table): Change call to
8020         function_section into call to current_function_section.
8021         * final.c (profile_function): Likewise.
8022         (scan_ahead_for_unlikely_executed_note): Remove function.
8023         (final_scan_insn):  Remove calls to
8024         scan_ahead_for_unlikely_executed_note, and related code for switching
8025         to cold section, except for the single time
8026         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
8027         debug_hooks->switch_text_sections; replace appropriate calls to
8028         function_section with calls to current_function_section.
8029         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
8030         test_bb to condition.
8031         (find_if_case_2): Likewise.
8032         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
8033         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
8034         * opts.c (decode_options): Change warning about hot/cold partitioning
8035         with exceptionss to inform (so as not to cause bootstrap failures);
8036         remove warning about partitioning with DWARF debug info.
8037         * output.h (current_function_section): Add new function decl.
8038         (insert_section_boundary_note): Likewise.
8039         (enum in_section): Move this declaration here from varasm.c.
8040         (unlikely_section_label): Likewise.
8041         (unlikely_text_section_name): Likewise.
8042         (last_text_section_name): New global variable.
8043         (last_text_section): Likewise.
8044         (hot_section_label): Likewise.
8045         (hot_section_end_label): Likewise.
8046         (cold_section_end_label): Likewise.
8047         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
8048         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
8049         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
8050         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
8051         insn from consideration.
8052         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
8053         switch_text_section.
8054         * varasm.c (basic-block.h): Add new include.
8055         (unlikely_section_label_printed): Remove global variable.
8056         (unlikely_section_label): Make global variable not be static any more.
8057         (unlikely_text_section_name): Likewise.
8058         (hot_section_end_label): New global variable (not static)
8059         (first_function_block_is_cold): Likewise.
8060         (hot_section_label): Likewise.
8061         (cold_section_end_label): Likewise..
8062         (last_text_section): New global variable, not static.
8063         (last_text_section_name): New global variable, not static.
8064         (initialize_cold_section_name): New function.
8065         (enum in_section): Move declaration to output.h.
8066         (text_section): Update last_text_section.
8067         (unlikely_text_section): Replace code to determine cold section name
8068         with call to initialize_cold_section_name; Add code to update
8069         last_text_section; remove code for printing out label.
8070         (named_section_real): Add code to update last_text_section and
8071         last_text_section_name as appropriate.
8072         (function_section): Change test for 'unlikely' to depend on
8073         first_function_block_is_cold (moved old test to
8074         current_function_section).
8075         (current_function_section): New function.
8076         (assemble_start_function): Move code that frees
8077         unlikely_text_section_name; initialize hot_section_end_label;
8078         print hot and cold section labels at the start of the function;
8079         set first_function_block_is_cold, if appropriate; initialize l
8080         ast_text_section; add call to insert_section_boundary_note.
8081         (assemble_end_function):  Add code to write out hot and cold section
8082         end labels.
8083         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
8084         switch_text_section.
8085         * config/darwin.c (machopic_select_section): Replace incorrect
8086         function in base_funs; update reloc for cold sections if necessary.
8087         * config/darwin.h (SECTION_FUNCTION):  Add code to update
8088         last_text_section if appropriate.
8089         (text_unlikely_section): Remove.
8090         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
8091         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
8092         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
8093         partitioning for this architecture.
8094
8095 2005-03-31  Olivier Hainque  <hainque@adacore.com>
8096
8097         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
8098         defined and non-zero.
8099
8100 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8101
8102         PR c++/18644
8103         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
8104         semantics.
8105
8106 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
8107
8108         PR target/20611
8109         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
8110         label operand.  Remove (use (unspec..)).  Don't emit a label on
8111         the offset word.
8112         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
8113         generate inline label for load_toc_v4_PIC_1b.
8114         (rs6000_emit_load_toc_table): Likewise.
8115
8116 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8117
8118         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
8119         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
8120
8121 2005-03-29  Devang Patel  <dpatel@apple.com>
8122
8123         * tree-sra.c (decide_block_copy): Disable scalarization of
8124         sub-elements.
8125
8126 2005-03-30  Stuart Hastings  <stuart@apple.com>
8127             Dale Johannesen  <dalej@apple.com>
8128
8129         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
8130         * print-tree.c (print_node):  Add case STATEMENT_LIST.
8131
8132 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
8133
8134         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
8135         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
8136         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
8137         is given with "powerpc64*" or "all", or when --with-cpu chooses
8138         a 64-bit cpu.
8139
8140 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
8141
8142         PR debug/20268
8143         * dwarf2out.c (add_high_low_attributes): New function, extracted from
8144         gen_lexical_block_die.
8145         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
8146
8147 2005-03-31  Jan Hubicka  <jh@suse.cz>
8148
8149         2004-11-02  Jan Hubicka  <jh@suse.cz>
8150
8151         * cgraph.c (cgraph_varpool_node_name): New function.
8152         (dump_cgraph_varpool_node): New function.
8153         (dump_varpool): New function.
8154         * cgraphunit.c (cgraph_optimize): Dump varpool.
8155
8156         2004-10-16  Jan Hubicka  <jh@suse.cz>
8157
8158         * cgraph.c (decide_is_variable_needed): New function.
8159         (cgraph_varpool_finalize_decl): Use it.
8160         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
8161         unit-at-a-time.
8162         * final.c (output_addr_const): Do not call mark_referenced.
8163         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
8164         always go via cgraph.
8165         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
8166         (check_global_declarations): Ifdef out code clearing DECL_RTL.
8167         * tree-optimize.c (execute_inline): Mark functions called.
8168         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
8169
8170         2004-10-11  Jan Hubicka  <jh@suse.cz>
8171
8172         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
8173         (cgraph_varpool_last_needed_node): New static variable.
8174         (enqueue_needed_varpool_node): Break out from ...; add items to the
8175         end of queue; update first pointers.
8176         (cgraph_varpool_mark_needed_node): ... here.
8177         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
8178         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
8179         * cgraph.h (cgraph_varpool_node): Add analyzed field.
8180         (cgraph_varpool_first_unanalyzed_node): Declare.
8181         * cgraphunit.c: Include output.h.
8182         (cgraph_varpool_analyze_pending_decls): New function.
8183         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
8184         for errors, analyze pending decls.
8185         (cgraph_finalize_compilation_unit): Only analyze decls.
8186         (cgraph_optimize): Assemble the decls after expanding.
8187
8188 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
8189
8190         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
8191         subvars get marked properly in tags for grouping.
8192         (add_pointed_to_var): Mark only actual pointed to
8193         variables/subvars in addresses needed.
8194         (create_overlap_variables_for): Clear call clobbered on original
8195         variable.
8196         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
8197         addresable vars with subvars into list.
8198         * tree-ssa.c (verify_ssa_name): Verify original is not used where
8199         subvar should be.
8200
8201 2005-03-30  Richard Henderson  <rth@redhat.com>
8202
8203         * cgraph.h (struct cgraph_node): Add alias.
8204         * varasm.c (assemble_alias): Set it.
8205         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
8206         avoid calling cgraph_expand_function.
8207
8208 2005-03-30  Tom Tromey  <tromey@redhat.com>
8209
8210         * tree.def (FILE_TYPE): Removed.
8211         * typeclass.h (enum type_class): Removed file_type_class.
8212         * dwarf2out.c (is_base_type): Updated.
8213         (gen_type_die): Likewise.
8214         * dbxout.c (dbxout_type): Updated.
8215         * builtins.c (type_to_class): Updated.
8216         * tree.c (type_contains_placeholder_1): Updated.
8217         * config/sparc/sparc.c (sparc_type_code): Updated.
8218         * config/ia64/ia64.c (hfa_element_mode): Updated.
8219         * expr.c (count_type_elements): Updated.
8220         * stor-layout.c (layout_type): Updated.
8221         * tree-inline.c (remap_type): Updated.
8222         * tree-pretty-print.c (dump_generic_node): Updated.
8223
8224 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
8225
8226         * builtins.c (expand_builtin_powi): Fix mode of
8227         2nd argument to match int.
8228         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
8229         2nd argument type to int.
8230         * libgcc2.c: Change prototype of __powi* functions to use
8231         int.
8232
8233 2005-03-30  Dale Johannesen  <dalej@apple.com>
8234
8235         PR middle-end/19225
8236         * calls.c (expand_call):  Flush pending deferrals before
8237         throwing call.
8238
8239 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
8240
8241         PR c/772
8242         PR c/17913
8243         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
8244         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
8245         c_label_context, label_context_stack): New.
8246         * c-decl.c (define_label): Check for jumps into statement
8247         expressions.  Add label to list of defined labels.
8248         (start_function): Push context on label_context_stack.
8249         (finish_function): Pop context from label_context_stack.
8250         * c-typeck.c (label_context_stack): New.
8251         (c_finish_goto_label): Check for jumps into statement
8252         expressions.  Add label to list of jumped to labels.
8253         (struct c_switch): Add blocked_stmt_expr.
8254         (c_start_case): Initialize it.
8255         (do_case): Check it.
8256         (c_finish_case): Verify !blocked_stmt_expr.
8257         (c_begin_stmt_expr):  Push context on label_context_stack.
8258         Increment blocked_stmt_expr.  Mark labels jumped to from outside
8259         as undefinable.
8260         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
8261         defined in the statement expression and no longer jumpable to.
8262         Mark labels jumped to from just outside the statement expression
8263         as again definable.  Pop context from label_context_stack.
8264         * doc/extend.texi (Statement Exprs): Update.
8265
8266 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
8267
8268         PR c/20368
8269         * c-decl.c (start_function): Check for old_decl being
8270         error_mark_node.
8271
8272 2005-03-30  Ian Lance Taylor  <ian@airs.com>
8273
8274         * final.c (final): Remove prescan parameter.  Change all callers.
8275         (final_scan_insn): Remove prescan parameter.  Change all callers.
8276
8277 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8278
8279         * tree-vectorizer.c: Fix comment typos.
8280
8281 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
8282
8283         * tree-scalar-evolution.c (instantiate_parameters_1): Return
8284         as soon as a chrec_dont_know is detected.
8285
8286 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
8287
8288         Merge from csl-arm-branch.
8289         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
8290
8291         * tlink.c (recompile_files): Do not assume that "rename" can
8292         overwrite an existing file.
8293
8294 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
8295
8296         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
8297         * gcc/configure: Regenerate.
8298
8299 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
8300
8301         * doc/install.texi: Update binutils requirement for powerpc*-linux.
8302
8303         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
8304
8305         * calls.c (struct arg_data): Update "partial" comment.
8306         (load_register_parameters): Update "nregs" comment.
8307
8308 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
8309
8310         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
8311         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
8312         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
8313         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
8314         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
8315         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
8316         than target_flags & 0.
8317         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
8318         (iq2000_arch, iq2000_parse_cpu): Delete.
8319         (TARGET_HANDLE_OPTION): Override default.
8320         (iq2000_handle_option): New function.
8321         (override_options): Remove -march= and -mcpu= handling.
8322         * config/iq2000/iq2000.opt: New file.
8323
8324 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
8325
8326         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
8327         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
8328         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
8329         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
8330         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
8331         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
8332         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
8333         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
8334         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
8335         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
8336         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
8337         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
8338         (c4x_rpts_cycles_string, c4x_cpu_version_string)
8339         (TARGET_OPTIONS): Delete.
8340         (c4x_rpts_cycles, c4x_cpu_version): Declare.
8341         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
8342         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
8343         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
8344         (c4x_cpu_version_string): Delete.
8345         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8346         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
8347         equivalent -mcpu= option.
8348         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
8349         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
8350         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
8351         or clearing the appropriate MASK_* bit.
8352         (c4x_file_start): Use c4x_cpu_version.
8353         * config/c4x/c4x.opt: New file.
8354
8355 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
8356
8357         * doc/options.texi: Document the new MaskExists flag.
8358         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
8359         if the option has the MaskExists flag.
8360
8361 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
8362
8363         * opt-functions.awk (flag_set_p, test_flag): New functions.
8364         (switch_flags): Use them.
8365         * opth-gen.awk: Use flag_set_p to check for flags.
8366         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
8367
8368 2005-03-30  Ian Lance Taylor  <ian@airs.com>
8369
8370         * config.host (i[34567]86-*-mingw32*): Don't set
8371         host_can_use_collect2 to no.
8372
8373 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
8374
8375         PR target/20203
8376         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
8377         Remove convert_memory_address call duplicating that in memory_address.
8378
8379 2005-03-29  Richard Henderson  <rth@redhat.com>
8380
8381         PR c/20519
8382         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
8383         (build_compound_literal): Likewise.  Propagate decl type into the
8384         initializer.
8385         (finish_decl): Likewise.  Use new return value from complete_array_type
8386         for zero sized arrays.
8387         (complete_array_type): Move ...
8388         * c-common.c (complete_array_type): ... here.  Change first argument
8389         to pointer-to-type-node.  Consistently use sizetype for the index
8390         except for zero sized arrays.  Detect zero sized arrays for pedantic
8391         mode diagnostics.  Create a new type node instead of modifying the
8392         old node in place.
8393         * c-tree.h (complete_array_type): Move decl ...
8394         * c-common.h (complete_array_type): ... here.
8395
8396 2005-03-29  Richard Henderson  <rth@redhat.com>
8397
8398         PR tree-opt/19108
8399         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
8400
8401 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8402
8403         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
8404         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
8405         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
8406         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
8407
8408 2005-03-29  Eric Christopher  <echristo@redhat.com>
8409
8410         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
8411         truthvalue conversion removal.
8412
8413 2005-03-29  Ian Lance Taylor  <ian@airs.com>
8414
8415         PR bootstrap/14316
8416         * collect2.c: Never include <vfork.h>.
8417         (VFORK_STRING, vfork): Don't define.
8418         (pid): Remove global variable.
8419         (handler): Call raise instead of kill (getpid(), ...).
8420         (collect_wait): Add pex parameter.  Change all callers.  Use
8421         pex_get_status rather than pwait.
8422         (do_wait): Add pex parameter.  Change all callers.
8423         (collect_execute): Return struct pex_obj * rather than void.  Use
8424         pex routines rather than pexecute.
8425         (fork_execute): Get pex_obj from collect_execute, and pass it to
8426         do_wait.
8427         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
8428         Only declare quit_handler if SIGQUIT is defined.
8429         (scan_libraries): Likewise.
8430         * collect2.h (collect_execute): Update declaration.
8431         (collect_wait): Update declaration.
8432         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
8433         pass it to collect_wait.
8434
8435 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
8436
8437         PR c/20672
8438         * c-parser.c (c_parser_compound_statement_nostart): Give error
8439         message for EOF instead of just setting parser->error.
8440
8441 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
8442
8443         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
8444         (slpeel_update_phi_nodes_for_guard1): New function.
8445         (slpeel_update_phi_nodes_for_guard2): New function.
8446         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
8447         of slpeel_update_phi_nodes_for_guard.
8448         (vectorize_loops): Remove call to loop_closed_rewrite.
8449         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
8450         assertion.
8451
8452 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
8453
8454         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
8455         (TARGET_LITTLE_ENDIAN): New macro.
8456         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
8457         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
8458         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
8459         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
8460         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
8461         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
8462         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
8463         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
8464         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
8465         (TARGET_OPTIONS): Delete.
8466         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
8467         (CACHE_FLUSH_TRAP): Turn into an integer.
8468         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
8469         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
8470         -mflush-trap is in use.
8471         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
8472         (m32r_cache_flush_trap_string): Delete.
8473         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
8474         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
8475         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
8476         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8477         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
8478         -mmodel= and -msdata= handling from...
8479         (m32r_init): ...here.
8480         * config/m32r/m32r.opt: New file.
8481
8482 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
8483
8484         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
8485         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
8486         * tree-vect-analyze.c (vect_object_analysis): additional parm
8487         pass back a "struct ptr_info_def *" with the points-to info.
8488         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
8489         statement using info returned from vect_object_analysis.
8490         * tree-vect-transform.c (update_vuses_to_preheader): New function.
8491         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
8492         for virtual uses and defs when creating a replacement vector
8493         reference.  Call duplicate_ssa_name_ptr_info to define points-to
8494         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
8495         (vectorizable_store): copy_virtual_operands and update
8496         definition statements.
8497         (vectorizable_load): copy_virtual_operands.  Remove call to
8498         mark_call_clobbered_vars_to_rename for call to "const" builtin.
8499         * tree-vectorizer.c (vectorize_loops): Remove calls to
8500         rewrite_into_ssa and bitmap_clear (vars_to_rename).
8501         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
8502         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
8503         define macro STMT_VINFO_PTR_INFO for use in accessing.
8504         * tree.h add export of duplicate_ssa_name_ptr_info.
8505         * rs6000.c (altivec_init_builtins): Declare builtin function
8506         __builtin_altivec_mask_for_load to be "const".
8507
8508 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
8509
8510         PR middle-end/20622
8511         * cgraph.h (struct cgraph_varpool_node): Add alias field.
8512         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
8513         assemble_variable on aliases.
8514         * varasm.c (assemble_alias): Set node->alias.
8515         * toplev.c (wrapup_global_declarations): Don't call
8516         rest_of_decl_compilation on aliases again.
8517
8518 2005-03-29  Paul Brook  <paul@codesourcery.com>
8519
8520         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
8521         * config/arm/arm.c (arm_dbx_register_number): New function.
8522         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
8523
8524 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
8525
8526         PR middle-end/20263
8527         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
8528         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
8529
8530 2005-03-29  Dale Johannesen <dalej@apple.com>
8531
8532         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
8533         $(TREE_H) and $(COVERAGE_H).
8534         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
8535         * opts.c (common_handle_option): Enable tree-based value transforms.
8536         * toplev.c (process_options): Ditto.
8537         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
8538         refers to references to this type.
8539         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
8540         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
8541         for may_be_more, may_be_less.
8542         (rtl_gen_pow2_profiler): Adjust.
8543         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
8544         (rtl_gen_one_value_profiler): Adjust.
8545         (rtl_gen_const_delta_profiler): Adjust.
8546         * tree-profile.c (tree_gen_interval_profiler): Implement.
8547         (tree_gen_pow2_profiler): Ditto.
8548         (tree_gen_one_value_profiler): Ditto.
8549         (tree_profiling): New.
8550         (pass_tree_profile): Reference it.
8551         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
8552         tree.h, gcov-io.h.
8553         (insn_divmod_values_to_profile): Rename to
8554         rtl_divmod_values_to_profile. Adjust.
8555         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
8556         (insn_prefetch_values_to_profile): Adjust.
8557         (rtl_value_profile_transformations): Adjust.
8558         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
8559         (gen_mod_pow2): Rename to rtl_mod_pow2.
8560         (gen_mod_subtract): Rename to rtl_mod_subtract.
8561         (divmod_fixed_value_transform): Rename to
8562         rtl_divmod_fixed_value_transform.
8563         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
8564         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
8565         (rtl_find_values_to_profile): Adjust.
8566         (tree_value_profile_transformations): Implement.
8567         (tree_divmod_values_to_profile): New.
8568         (tree_values_to_profile): New.
8569         (tree_divmod_fixed_value): New.
8570         (tree_mod_pow2): New.
8571         (tree_mod_subtract): New.
8572         (tree_divmod_fixed_value_transform): New.
8573         (tree_mod_pow2_value_transform): New.
8574         (tree_mod_subtract_transform): New.
8575         (tree_find_values_to_profile): Implement.
8576         * profile.c (instrument_values):  Free histograms.
8577         (compute_value_histograms): Adjust. Implement tree version.
8578
8579 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
8580
8581         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
8582         * config/i386/i386.c (output_fix_trunc): Add new round_mode
8583         variable.  Output "fldcw" depending on round_mode.
8584         * config/i386/i386.md (UNSPEC_FIST): New.
8585         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
8586         New isns patterns to implement lrint and llrint built-ins as x87
8587         intrinsic function.
8588         (fistdi2, fist<mode>2 splitters): New splitters.
8589         (lrint<mode>2): New expanders.
8590
8591 2005-03-28  Ian Lance Taylor  <ian@airs.com>
8592
8593         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
8594         0 when calling final_scan_insn.
8595
8596 2005-03-28  Jan Hubicka  <jh@suse.cz>
8597
8598         PR middle-end/20635
8599         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
8600         as needed.
8601
8602         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
8603         types where possible.
8604
8605 2005-03-26  Per Bothner  <per@bothner.com>
8606
8607         Make -f[no-]show-column also control non-cpp diagnostics.
8608         * c.opt (fshow-column): Move option from here ...
8609         * common.opt (fshow-column): ... to here.
8610         * diagnostic.c (diagnostic_build_prefix): Only print column number
8611         if flag_show_column.
8612
8613 2005-03-27  Steven Bosscher  <stevenb@suse.de>
8614
8615         * vax-protos.h (vax_output_int_move, vax_output_int_add,
8616         vax_output_conditional_branch): New prototypes.
8617         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
8618         extracted from vax.md mov and add patterns.
8619         (vax_output_conditional_branch): New function to output conditional
8620         branch instructions.
8621         * vax.md: Use mode macros for arithmetic and mov patterns.
8622         Use code macros for the jump patterns.
8623
8624 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
8625
8626         * Makefile.in (libbackend.o): Depend on version files;
8627         add custom generation command.
8628
8629 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
8630
8631         PR target/20636
8632         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
8633         sure that we have a REG before getting its REGNO.
8634
8635 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8636
8637         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
8638         * builtins.def (BUILT_IN_STRNDUP): New.
8639
8640 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
8641
8642         PR tree-optimization/20470
8643         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
8644         ABS(x-y).
8645
8646 2005-03-25  Mike Stump  <mrs@apple.com>
8647
8648         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
8649         sized objects.
8650
8651 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
8652
8653         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
8654         Use our own structure definitions.
8655
8656         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
8657         (fix_truncdfsi2): Allow registers or memory as destination.
8658         When TARGET_PPC_GFXOPT, generate simplified pattern.
8659         (fix_truncdfsi2_internal): Use define_insn_and_split.
8660         (fix_truncdfsi2_internal_gfxopt): New.
8661         (fctiwz): Don't confuse register allocation by giving it no choices.
8662         (stfiwx): New.
8663         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
8664         (EXTRA_MEMORY_CONSTRAINT): Likewise.
8665         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
8666         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
8667
8668 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8669
8670         * dominance.c (free_dominance_info): Speed up by freeing et
8671         data structures without maintaining other nodes.
8672         * et-forest.c (et_free_tree_force): New.
8673         * et-forest.h: Add a prototype for et_free_tree_force.
8674
8675         * tree.c (get_set_constructor_bits,
8676         get_set_constructor_bytes): Remove.
8677         * tree.h: Remove the corresponding prototypes.
8678
8679 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
8680
8681         PR target/15491
8682         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
8683         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
8684         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
8685         PRE_DEC, NEG and NOT.
8686
8687 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8688
8689         * fold-const.c: Convert uses of fold (build (...)) to
8690         fold_buildN.
8691
8692 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
8693
8694         PR rtl-optimization/20249
8695         * cse.c (insert_regs): Do not record equivalence of registers in
8696         different modes.
8697
8698 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8699
8700         * emit-rtl.c (reverse_comparison): Remove.
8701         * rtl.h: Remove the corresponding prototype.
8702
8703 2005-03-24  James E Wilson  <wilson@specifixinc.com>
8704
8705         * doc/install.texi (--enable-altivec): Delete docs.
8706
8707 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
8708
8709         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
8710         SFmode and DFmode before reload when
8711         flag_unsafe_math_optimizations not enabled.
8712
8713 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
8714
8715         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
8716
8717         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
8718         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
8719
8720 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8721
8722         * configure.ac (enable-checking): Add 'runtime' option.
8723         * doc/install.texi (enable-checking): Document 'runtime' checking.
8724         * tsystem.h (gcc_assert, gcc_unreachable): Define.
8725         * config.in: Regenerated.
8726         * configure: Regenerated.
8727
8728 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
8729
8730         * optabs.h (enum optab_index): Remove OTI_llrint.
8731         (llrint_optab): Remove macro.
8732         * optabs.c (init_optabs): Remove llrint_optab initialization.
8733         * genopinit.c (optabs): Remove llrint_optab implementation.
8734         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
8735         using lrint_optab.
8736
8737 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
8738
8739         PR rtl-optimization/20532
8740         * simplify-rtx.c (simplify_binary_operation_1): Protect from
8741         overflow when adding coefficients for PLUS or MINUS.
8742         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
8743         two as multiplier.
8744
8745 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
8746
8747         * langhooks.h (truthvalue_conversion): Remove.
8748         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
8749         LANG_HOOKS_TRUTHVALUE_CONVERSION.
8750         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
8751         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
8752         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
8753
8754 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8755
8756         * params.def: Fix a typo.
8757         * config/mips/mips.c: Follow the spelling convensions.
8758         * doc/invoke.texi: Fix typos.
8759
8760 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
8761
8762         Fix PR tree-optimization/20601
8763
8764         * tree-ssa-pre.c (insert_aux): Add missing condition to
8765         constification.
8766
8767 2005-03-23  Ian Lance Taylor  <ian@airs.com>
8768
8769         * final.c (final_scan_insn): Don't remove no-op instructions.
8770         * reload1.c (reload): Remove simple no-op instructions even when
8771         not optimizing.
8772
8773 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
8774
8775         PR tree-optimization/20501
8776         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
8777         reporting that peeling for alignment is applied moved to...
8778         * (vect_analyze_data_refs_alignment): Here.
8779
8780 2005-03-23  Ian Lance Taylor  <ian@airs.com>
8781
8782         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
8783
8784 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8785
8786         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
8787         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
8788
8789 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
8790
8791         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
8792         imply that this is called once, independent of asms in code.
8793         Adjust to now being pased output and input lists.  Mention helper
8794         function decl_overlaps_hard_reg_set_p.
8795         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
8796         hook_tree_tree_identity and to take three trees, returning third.
8797         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
8798         prototype.
8799         * stmt.c: include hard-reg-set.h before tree.h.
8800         (decl_overlaps_hard_reg_set_p): New function, broken out from...
8801         (decl_conflicts_with_clobbers_p): Call
8802         decl_overlaps_hard_reg_set_p.
8803         (expand_asm_operands): Pass output and input lists in call to
8804         targetm.md_asm_clobbers.
8805         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
8806         hook_tree_tree_tree_tree_3rd_identity.
8807         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
8808         parameters.
8809         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
8810         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
8811         parameters, first two unused.
8812         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
8813         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
8814         in constraint letters and MOF is not mentioned as a asm-declared
8815         register in neither of the input and output lists.
8816
8817 2005-03-23  DJ Delorie  <dj@redhat.com>
8818
8819         * optabs.c (expand_binop): Make sure the first subword's result
8820         gets stored.
8821
8822 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
8823
8824         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
8825         Call c_common_truthvalue_conversion rather than
8826         lang_hooks.truthvalue_conversion.
8827         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
8828         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
8829         c-typeck.c.
8830         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
8831         c_common_truthvalue_conversion.
8832         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
8833         c_parser_conditional_expression, c_parser_binary_expression): Call
8834         c_objc_common_truthvalue_conversion.
8835         * c-typeck.c (build_unary_op): Call
8836         c_objc_common_truthvalue_conversion.
8837         (build_conditional_expr): Do not call
8838         lang_hooks.truthvalue_conversion.
8839         (build_binary_op): Call c_common_truthvalue_conversion.
8840         (c_objc_common_truthvalue_conversion): Moved from
8841         c-objc-common.c.  Call default_function_array_conversion instead
8842         of default_conversion.
8843
8844 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
8845
8846         * c-common.h (default_conversion): Remove.
8847         (perform_integral_promotions): Add.
8848         * c-tree.h (default_conversion): Add.
8849         * c-typeck.c (perform_integral_promotions): New, split out from
8850         default_conversion.
8851         * c-common.c (check_case_value): Use perform_integral_promotions,
8852         not default_conversion.
8853         (c_add_case_label): Don't continue processing case label after
8854         found to be pointer.
8855
8856 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
8857
8858         * gcc.c (do_spec_1): Do not add a -L path for a directory in
8859         the prefix list if we have already added a multilib directory
8860         based on that path.
8861         (main): Do not add MD_EXEC_PREFIX to the list of directories to
8862         search with -L.
8863
8864 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8865
8866         * reload1.c (indirect_symref_ok, reload_obstack): Make them
8867         static.
8868         * reload.h: Remove the prototype for indirect_symref_ok.
8869
8870         * reload1.c (indirect_symref_ok): Make it global.
8871         * reload.h: Add a prototype for indirect_symref_ok.
8872
8873 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
8874
8875         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
8876         ashlhi3 expander.
8877
8878 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
8879
8880         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
8881
8882 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
8883
8884         * c-opts.c (c_common_parse_file): Only start/end main source file
8885         if debug hooks says the writer wants it.
8886         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
8887         member.
8888         (xcoff_debug_hooks): Ditto.
8889         * debug.c (do_nothing_hooks): Ditto.
8890         * debug.h (gcc_debug_hooks): Ditto.
8891         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
8892         * sdbout.c (sdb_debug_hooks): Ditto.
8893         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
8894
8895 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
8896
8897         * doc/extend.texi: Deprecate C++ min/max operators.
8898
8899 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
8900
8901         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
8902         artificial original candidates.
8903
8904 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
8905             Jan Hubicka  <jh@suse.cz>
8906             Steven Bosscher <stevenb@suse.de>
8907
8908         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
8909         call cost based on argument sizes.
8910         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
8911         inlining.
8912         * params.def: (max-inline-inssn-single): Set to 450.
8913         (max-inline-insns-auto): Set to 90.
8914         (max-inline-insns-recursive): Set to 450
8915         (max-inline-insns-recursive-auto): Set to 450.
8916         (large-function-insns): Set to 2700.
8917         (inline-call-cost): New parameter.
8918         * tree-inline.c (estimate_move_cost): New function.
8919         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
8920         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
8921         based on arguments.
8922         * tree-inline.h (estimate_move_cost): Declare.
8923         * invoke.texi: (max-inline-inssn-single): Change default to 450.
8924         (max-inline-insns-auto): Change default to 90.
8925         (max-inline-insns-recursive): Change default to 450
8926         (max-inline-insns-recursive-auto): Change default to 450.
8927         (large-function-insns): Change default to 2700.
8928         (inline-call-cost): Document new parameter.
8929
8930 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
8931
8932         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
8933         (TARGET_DEFAULT): Delete.
8934         * config/i860/i860.opt: New file.
8935
8936 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
8937
8938         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
8939         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
8940         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
8941         (frv_sched_lookahead): Delete.
8942         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
8943         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
8944         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
8945         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
8946         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
8947         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
8948         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
8949         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
8950         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
8951         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
8952         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
8953         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
8954         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
8955         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
8956         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
8957         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
8958         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
8959         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
8960         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
8961         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
8962         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
8963         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
8964         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
8965         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
8966         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
8967         (frv_sched_lookahead): Delete.
8968         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
8969         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8970         (frv_handle_option): New function.  Move -mcpu= handling from...
8971         (frv_override_options): ...here.  Remove handling of other
8972         TARGET_OPTIONS.
8973         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
8974         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
8975         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
8976         and TARGET_NO_MULTI_CE.
8977         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
8978         !TARGET_VLIW_BRANCH.
8979         * config/frv/frv.opt: New file.
8980
8981 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8982
8983         * fold-const.c (fold_ternary): Take decomposed arguments of
8984         CALL_EXPR.
8985         (fold): Update a call to fold_ternary.
8986
8987         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
8988         * tree.h: Add corresponding prototypes.
8989
8990 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
8991
8992         PR target/20561
8993         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
8994         between jump table and its label.
8995         * final.c (shorten_branches): Handle notes in between ADDR_VEC
8996         resp. ADDR_DIFF_VEC and the label preceeding it.
8997         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
8998         is emitted in the right section.
8999
9000 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
9001
9002         * fold-const.c (fold_unary, fold_binary): Update comments
9003         about arguments.
9004
9005 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
9006
9007         PR rtl-optimization/20527
9008         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
9009         REG_INC note, test that the register also isn't mentioned in PRED
9010         or SUCC.
9011
9012 2005-03-22  Ben Elliston  <bje@au.ibm.com>
9013
9014         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
9015         and definition.
9016
9017 2005-03-21  Mike Stump  <mrs@apple.com>
9018
9019         * varasm.c (default_assemble_visibility): Remove extra ().
9020
9021 2005-03-21  Roger Sayle  <roger@eyesopen.com>
9022
9023         PR middle-end/20557
9024         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
9025         to determine whether a block can be duplicated, rather than test
9026         whether the block contains noncopyable insns ourselves.
9027
9028 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9029
9030         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
9031         predicates.
9032
9033 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
9034
9035         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
9036
9037 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
9038
9039         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
9040         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
9041         * config/fr30/fr30.opt: New file.
9042
9043 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
9044
9045         Fix PR tree-optimization/20542
9046
9047         * tree-flow-inline.h (overlap_subvar): Move to here.
9048         * tree-ssa-operands.c: From here.
9049         * tree-flow.h (overlap_subvar): Declare.
9050         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
9051         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
9052         for variables with subvars.
9053
9054 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
9055
9056         PR middle-end/20177
9057         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
9058         * modulo-sched.c (const_iteration_count): Return on NULL
9059         pre-header.
9060         (print_node_sched_params): Return on NULL dump_file.
9061         (generate_reg_moves): Handle reg-anti dependencies and disregard
9062         closing branch when generating register moves.
9063         (sms_schedule): Mark the SMSed block dirty.
9064         * passes.c (rest_of_handle_sms): Call update_life_info for all
9065         basic-blocks.
9066         * testsuite/gcc.dg/20050321-1.c: New test.
9067
9068 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
9069
9070         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
9071         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
9072         movqi_internal): Likewise.
9073
9074 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
9075
9076         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
9077         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
9078         xtensa_b4const): Delete prototypes.
9079         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
9080         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
9081         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
9082         xtensa_extra_constraint): New prototypes.
9083         (add_operand, arith_operand, nonimmed_operand, mem_operand,
9084         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
9085         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
9086         move_operand, const_float_1_operand, fpmem_offset_operand,
9087         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
9088         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
9089         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
9090         argument type to HOST_WIDE_INT.
9091         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
9092         xtensa_mask_immediate): Likewise.
9093         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
9094         Likewise.  Also make these functions static.
9095         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
9096         (xtensa_const_ok_for_letter_p): New.
9097         (add_operand, arith_operand, nonimmed_operand, mem_operand,
9098         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
9099         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
9100         move_operand, const_float_1_operand, fpmem_offset_operand,
9101         branch_operator, ubranch_operator, boolean_operator): Move to
9102         predicates.md.
9103         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
9104         (xtensa_mem_offset): Change return type to bool.
9105         (xtensa_extra_constraint): New.
9106         (gen_int_relational): Update type of const_range_p function pointer.
9107         Use xtensa_b4const_or_zero.
9108         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
9109         xtensa_const_ok_for_letter_p.  Update comments.
9110         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
9111         (PREDICATE_CODES): Delete.
9112         * config/xtensa/xtensa.md: Include predicates.md.
9113         * config/xtensa/predicates.md: New file.
9114
9115 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9116
9117         * config/v850/v850-protos.h: Remove the prototypes for
9118         reg_or_int9_operand, reg_or_const_operand,
9119         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
9120         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
9121         movsi_source_operand, power_of_two_operand,
9122         not_power_of_two_operand, special_symbolref_operand,
9123         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
9124         register_is_ok_for_epilogue.
9125         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
9126         reg_or_int9_operand, reg_or_const_operand,
9127         call_address_operand, special_symbolref_operand,
9128         movsi_source_operand, power_of_two_operand,
9129         not_power_of_two_operand, register_is_ok_for_epilogue,
9130         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
9131         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
9132         predicates.md.
9133         * config/v850/v850.h (PREDICATE_CODES): Remove.
9134         * config/v850/v850.md: Include predicates.md.
9135         * config/v850/predicates.md: New.
9136
9137 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
9138
9139         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
9140         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
9141         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
9142         (itoolsdir, itoolsdatadir): Move definition above new first use.
9143         (install-itoolsdirs): New rule.
9144         (install-mkheaders): Depend on install-itoolsdirs, not
9145         install-include-dir.
9146
9147 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9148
9149         * tree-into-ssa.c: Remove obsolete comments.
9150
9151 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
9152
9153         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
9154         unrolling if -fpeel-loops is specified, too.
9155         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
9156         Remove superfluous check for flag_unroll_loops.
9157
9158 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
9159
9160         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
9161         (lrint_optab, llrint_optab): Define corresponding macros.
9162         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
9163         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
9164         pattern and llrint_optab using llrintdi2 patterns.
9165         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
9166         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
9167         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
9168         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
9169         flag_unsafe_math_optimizations is set.
9170
9171 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
9172
9173         * combine.c (combine_simplify_rtx, simplify_if_then_else,
9174         simplify_logical, if_then_else_cond, known_cond,
9175         simplify_comparison): Adjust calls to reverse_comparison.
9176         Don't use combine_reversed_comparison_code).
9177         (combine_reversed_comparison_code): Remove.
9178         (reversed_comparison): Using reversed_comparison_code, move it...
9179         * jump.c (reversed_comparison): ... here.
9180         * rtl.h (reversed_comparison): Add prototype.
9181
9182 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9183
9184         * builtins.c (fold_builtin): Take decomposed arguments of
9185         CALL_EXPR.
9186         * fold-const.c (fold_ternary): Update a call to fold_builtin.
9187         * gimplify.c (gimplify_call_expr): Likewise.
9188         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
9189         * tree.h: Update the prototype of fold_builtin.
9190
9191 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
9192
9193         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
9194         * rtlhooks.c (gen_lowpart_no_emit_general): New.
9195         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
9196         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
9197         * simplify-rtx.c (simplify_binary_operation_1): Use it.
9198
9199 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9200
9201         * builtins.c (fold_builtin_1): Take decomposed arguments of
9202         CALL_EXPR.
9203         (fold_builtin): Update a call to fold_builtin_1.
9204
9205 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
9206
9207         PR other/20564
9208         * gcov.c (output_lines): Only output function block summary when
9209         outputting branch information.
9210         * doc/gcov.texi: Document format of preamble and additional block
9211         information lines.
9212
9213 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
9214
9215         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
9216         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
9217         the defaults false if BITS_PER_UNIT != 8.
9218         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
9219         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
9220         than BITS_PER_UNIT != 8.
9221         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
9222         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
9223         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
9224         #undefs.
9225         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
9226         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
9227
9228 2005-03-20  Roger Sayle  <roger@eyesopen.com>
9229
9230         PR middle-end/20539
9231         * fold-const.c (fold_binary): Fix type mismatch between
9232         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
9233         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
9234         for non-truth-valued expressions.
9235
9236         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
9237         and FUNCTION_DECL in the main switch.
9238         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
9239         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
9240         we also need to convert their operands to match.
9241         <TRUTH_NOT_EXPR>: Likewise.
9242
9243 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
9244
9245         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
9246         diagnostic without checking whether an lvalue.
9247         * c-common.h (lvalue_p): Remove.
9248         (enum lvalue_use): Update comment.
9249         (lvalue_or_else): Replace by lvalue_error.
9250         * c-typeck.c (lvalue_p): Make static.
9251         (lvalue_or_else): New.  Call lvalue_error.
9252
9253 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
9254
9255         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
9256         (function_arg_advance): Use rs6000_parm_start.
9257         (function_arg, rs6000_arg_partial_bytes): Likewise.
9258
9259 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
9260
9261         * c-common.c (check_case_value): Adjust comment about stripping
9262         NOPs.
9263         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
9264         * c-typeck.c (default_conversion, convert_arguments,
9265         build_modify_expr, convert_for_assignment, store_init_value,
9266         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
9267         manually.  Remove inaccurate comments.
9268
9269 2005-03-20  Roger Sayle  <roger@eyesopen.com>
9270             Joseph S. Myers  <joseph@codesourcery.com>
9271
9272         * varasm.c (do_assemble_alias): Restore comment describing function.
9273         Annotate the target parameter as potentially unused.
9274
9275 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9276
9277         PR target/18551
9278         * config/avr/avr.c (avr_output_function_prologue): Do not use
9279         current_function_name() in a label, use a local label instead.
9280
9281 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
9282
9283         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
9284         flag_finite_math_only, not flag_unsafe_math_optimizations.
9285
9286 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9287
9288         * builtins.c (fold_builtin_1): Update a call to
9289         targetm.fold_builtin.
9290         * hooks.c (hook_tree_tree_bool_null): Rename to
9291         hook_tree_tree_tree_bool_null.  Take one more argument of type
9292         tree.
9293         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
9294         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
9295         hook_tree_tree_tree_bool_null.
9296         * target.h (gcc_target): Update the prototype of fold_builtin.
9297         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
9298         arguments of CALL_EXPR.
9299         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
9300         new prototype.
9301
9302 2005-03-20  Jan Hubicka  <jh@suse.cz>
9303
9304         * cgraph.h (cgraph_node): Add prev_clone pointer.
9305         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
9306         (cgraph_clone_node): Produce doubly linked chain.
9307
9308 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
9309
9310         * c-common.c (handle_aligned_attribute, check_function_sentinel,
9311         get_nonnull_operand, handle_sentinel_attribute,
9312         check_function_arguments_recurse): Do not strip NOPS from
9313         INTEGER_CSTs.
9314         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
9315         Likewise.
9316         * c-format.c (get_constant): Likewise.
9317         * c-parser.c (c_parser_postfix_expression): Likewise.
9318         * c-typeck.c (set_init_index): Likewise.
9319         (convert_arguments): Don't check for NOP_EXPR containing integer
9320         constant.
9321
9322 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9323
9324         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
9325         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
9326         Take decomposed arguments of CALL_EXPR.
9327         (fold_builtin_1): Update calls to the functions mentioned
9328         above.
9329
9330 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
9331
9332         * c-decl.c (check_bitfield_type_and_width): Require bit-field
9333         width to have integer type.
9334         (build_enumerator): Require enumerator value to have integer type.
9335
9336 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
9337
9338         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
9339         to __builtin_inff.
9340
9341 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
9342
9343         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
9344         std=iso9899:199x): Correct descriptions.
9345
9346 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
9347
9348         * config.gcc: Consistently use solaris2.1[0-9]* instead of
9349         solaris2.1[0-9].
9350
9351 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9352
9353         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
9354         of CALL_EXPR.
9355         (expand_builtin_memcpy, fold_builtin_1): Update calls to
9356         fold_builtin_memcpy.
9357
9358         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
9359         arguments of CALL_EXPR.
9360         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
9361         fold_builtin_found, fold_builtin_1): Update calls to
9362         fold_trunc_transparent_mathfn.
9363
9364 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9365
9366         PR middle-end/20493
9367         * fold-const.c (fold_widened_comparison): Don't optimize casts of
9368         function pointers on targets that require function pointer
9369         canonicalization.
9370         (fold_sign_changed_comparison): Likewise.
9371
9372 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
9373
9374         * combine.c (try_combine): When changing the mode of a hard reg, make
9375         sure that doing so is valid.
9376
9377 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
9378
9379         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
9380         (TARGET_HANDLE_OPTION): Override default.
9381         (avr_handle_option): New function.
9382         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
9383         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
9384         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
9385         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
9386         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
9387         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
9388         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
9389         (TARGET_OPTIONS): Delete.
9390         * config/avr/avr.opt: New file.
9391
9392 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9393
9394         * config/m32r/m32r-protos.h: Remove the prototypes for
9395         call_address_operand, symbolic_operand, seth_add3_operand,
9396         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
9397         reg_or_uint16_operand, reg_or_cmp_int16_operand,
9398         two_insn_const_operand, move_src_operand,
9399         move_double_src_operand, move_dest_operand,
9400         eqne_comparison_operator, signed_comparison_operator,
9401         large_insn_p, conditional_move_operand, carry_compare_operand,
9402         m32r_block_immediate_operand, extend_operand,
9403         reg_or_eq_int16_operand, int8_operand, and
9404         reg_or_zero_operand.
9405         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
9406         seth_add3_operand, int8_operand, cmp_int16_operand,
9407         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
9408         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
9409         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
9410         move_double_src_operand, move_dest_operand,
9411         eqne_comparison_operator, signed_comparison_operator,
9412         extend_operand, small_insn_p, large_insn_p,
9413         conditional_move_operand, carry_compare_operand,
9414         m32r_block_immediate_operand): Move to predicates.md.
9415         (MAX_MOVE_BYTES): Move to m32r.h.
9416         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
9417         * config/m32r/m32r.md: Include predicates.md.
9418         * config/m32r/predicates.md: New.
9419
9420 2005-03-18  James E Wilson  <wilson@specifixinc.com>
9421
9422         PR c++/19769
9423         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
9424         origin.
9425
9426 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9427
9428         * config/mn10300/mn10300-protos.h: Remove the prototypes for
9429         call_address_operand, const_8bit_operand.
9430         * config/mn10300/mn10300.c (call_address_operand,
9431         const_8bit_operand, const_1f_operand): Move to predicates.md.
9432         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
9433         * config/mn10300/mn10300.md: Include predicates.md.
9434         * config/mn10300/predicates.md: New.
9435
9436 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
9437
9438         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
9439         declarations in diagnostics and %E for identifiers, not %s.
9440
9441 2005-03-18  Jan Hubicka  <jh@suse.cz>
9442             Dale Johannesen  <dalej@apple.com>
9443
9444         * basic-block.h (scale_bbs_frequencies_int,
9445         scale_bbs_frequencies_gcov_type): Declare.
9446         * cfg.c (RDIV): New macro.
9447         (update_bb_frequency_for_threading): Fix.
9448         * basic-block.h (scale_bbs_frequencies_int,
9449         scale_bbs_frequencies_gcov_type): New.
9450         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
9451         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
9452         scale_bbs_frequencies_int.
9453         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
9454
9455 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9456
9457         * config/m32r/m32r-protos.h: Remove the prototypes for
9458         call_address_operand, symbolic_operand, seth_add3_operand,
9459         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
9460         reg_or_uint16_operand, reg_or_cmp_int16_operand,
9461         two_insn_const_operand, move_src_operand,
9462         move_double_src_operand, move_dest_operand,
9463         eqne_comparison_operator, signed_comparison_operator,
9464         large_insn_p, conditional_move_operand, carry_compare_operand,
9465         m32r_block_immediate_operand, extend_operand,
9466         reg_or_eq_int16_operand, int8_operand, and
9467         reg_or_zero_operand.
9468         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
9469         seth_add3_operand, int8_operand, cmp_int16_operand,
9470         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
9471         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
9472         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
9473         move_double_src_operand, move_dest_operand,
9474         eqne_comparison_operator, signed_comparison_operator,
9475         extend_operand, small_insn_p, large_insn_p,
9476         conditional_move_operand, carry_compare_operand,
9477         m32r_block_immediate_operand): Move to predicates.md.
9478         (MAX_MOVE_BYTES): Move to m32r.h.
9479         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
9480         * config/m32r/m32r.md: Include predicates.md.
9481         * config/m32r/predicates.md: New.
9482
9483         * config/pa/pa-protos.h: Add prototypes for magic_milli and
9484         shadd_constant_p.
9485         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
9486         symbolic_operand, symbolic_memory_operand,
9487         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
9488         indexed_memory_operand, move_dest_operand, move_src_operand,
9489         prefetch_cc_operand, prefetch_nocc_operand,
9490         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
9491         arith_operand, arith11_operand, pre_cint_operand,
9492         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
9493         ireg_operand, int5_operand, uint5_operand, int11_operand,
9494         uint32_operand, arith5_operand, and_operand, ior_operand,
9495         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
9496         pc_or_label_operand, div_operand, plus_xor_ior_operator,
9497         shadd_operand, movb_comparison_operator,
9498         cmpib_comparison_operator): Move to predicates.md.
9499         (magic_milli, shadd_constant_p): Make it extern.
9500         * config/pa/pa.h (PREDICATE_CODES): Remove.
9501         * config/pa/pa.md: Include predicates.md.
9502         * config/pa/predicates.md: New.
9503
9504         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
9505         predicate.
9506
9507 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9508
9509         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
9510         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
9511         config/alpha/freebsd.h, config/alpha/linux.h,
9512         config/alpha/netbsd.h, config/alpha/osf5.h,
9513         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
9514         config/h8300/h8300-protos.h, config/h8300/h8300.c,
9515         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
9516         doc/cppopts.texi: Update copyright.
9517
9518 2005-03-18  Jan Hubicka  <jh@suse.cz>
9519
9520         PR middle-end/20225
9521         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
9522         too late.
9523         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
9524         called too late.
9525
9526 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9527
9528         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
9529         VEC_safe_push.
9530
9531 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
9532
9533         * combine.c (gen_binary): Remove.
9534         (known_cond, simplify_shift_const, find_split_point,
9535         combine_simplify_rtx, simplify_if_then_else, simplify_set,
9536         simplify_logical, expand_field_assignment, extract_left_shift,
9537         force_to_mode, if_then_else_cond, apply_distributive_law,
9538         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
9539         simplify_comparison, reversed_comparison): Replace with
9540         simplify_gen_binary, simplify_gen_relational or
9541         distribute_and_simplify_rtx.
9542         (distribute_and_simplify_rtx): New function.
9543
9544 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
9545             Paolo Bonzini  <gcc.gnu.org>
9546
9547         * calls.c (setjmp_call_p, special_function_p): Update comments
9548         at the head of the functions.
9549
9550 2005-03-18  Jan Hubicka  <jh@suse.cz>
9551
9552         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
9553
9554         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
9555         function body should be released; do not proactively release function
9556         bodies in non-unit-at-a-time mode.
9557
9558 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
9559
9560         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
9561         mno-fp-ret-in-387 multilib variants.
9562
9563 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
9564
9565         * common.opt (m): Remove.
9566         * opts.c (handle_option): Pass 'm' options to set_target_switch if
9567         table lookup fails.
9568         (common_handle_option): Remove OPT_m case.
9569
9570 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9571
9572         * builtins.c (fold_builtin_bitop): Take decomposed arguments
9573         of CALL_EXPR.
9574         (fold_builtin_1): Update a call to fold_builtin_bitop.
9575
9576         * builtins.c (fold_builtin_signbit): Take decomposed arguments
9577         of CALL_EXPR.
9578         (fold_builtin_1): Update a call to fold_builtin_signbit.
9579
9580 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
9581
9582         PR tree-optimization/20474
9583         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
9584         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
9585
9586 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9587
9588         * config/h8300/h8300-protos.h: Remove prototypes for
9589         general_operand_src, general_operand_dst, single_one_operand,
9590         single_zero_operand, call_insn_operand,
9591         two_insn_adds_subs_operand, small_call_insn_operand,
9592         jump_address_operand, bit_operand, bit_memory_operand,
9593         stack_pointer_operand, const_int_gt_2_operand,
9594         const_int_ge_8_operand, const_int_qi_operand,
9595         const_int_hi_operand, incdec_operand, bit_operator,
9596         nshift_operator, eqne_operator, gtle_operator,
9597         gtuleu_operator, iorxor_operator.
9598         Add prototypes for h8sx_shift_type h8sx_classify_shift and
9599         h8300_ldm_stm_parallel.
9600         * config/h8300/h8300.c (h8sx_shift_type,): Move to
9601         h8300-protos.h.
9602         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
9603         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
9604         (h8300_ldm_stm_parallel): Make it extern.
9605         (h8300_ldm_parallel, h8300_stm_parallel,
9606         h8300_return_parallel, general_operand_src,
9607         general_operand_dst, h8300_dst_operand, h8300_src_operand,
9608         nibble_operand, reg_or_nibble_operand, single_one_operand,
9609         single_zero_operand, call_insn_operand,
9610         two_insn_adds_subs_operand, small_call_insn_operand,
9611         jump_address_operand, bit_operand, bit_memory_operand,
9612         stack_pointer_operand, const_int_gt_2_operand,
9613         const_int_ge_8_operand, const_int_qi_operand,
9614         const_int_hi_operand, incdec_operand, eqne_operator,
9615         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
9616         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
9617         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
9618         nshift_operator): Move to predicates.md.
9619         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
9620         * config/h8300/h8300.md: Include predicates.md.
9621         * config/h8300/predicates.md: New.
9622
9623 2005-03-17  Richard Henderson  <rth@redhat.com>
9624
9625         * config.gcc (ia64*-*-hpux*): Add extra_options.
9626         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
9627         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
9628         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
9629         (ia64_tls_size_string, ia64_tune_string): Remove.
9630         (ia64_tune): Init to PROCESSOR_ITANIUM2.
9631         (TARGET_DEFAULT_TARGET_FLAGS): New.
9632         (TARGET_HANDLE_OPTION): New.
9633         (ia64_override_options): Move options parsing ...
9634         (ia64_handle_option): ... here.  New.
9635         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
9636         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
9637         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
9638         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
9639         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
9640         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
9641         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
9642         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
9643         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
9644         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
9645         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
9646         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
9647         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
9648         TARGET_EARLY_STOP_BITS): Remove.
9649         (TARGET_ILP32): Default false.
9650         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
9651         (enum ia64_inline_type): New.
9652         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
9653         * config/ia64/ia64.md: Update for new definitions of
9654         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
9655         * config/ia64/ia64.opt: New file.
9656         * config/ia64/ilp32.opt: New file.
9657
9658 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9659
9660         PR target/18380
9661         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
9662
9663 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9664
9665         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
9666         instead of MASK_H8300S.
9667         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
9668         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
9669         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
9670         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
9671         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
9672         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
9673         TARGET_SWITCHES): Remove.
9674         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
9675         TARGET_H8300SX.
9676         * config/h8300/h8300.opt: New.
9677
9678         * config/alpha/alpha.opt, config/arc/arc.opt,
9679         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
9680         notices.
9681
9682 2005-03-17  Ian Lance Taylor  <ian@airs.com>
9683
9684         * gmon.c: Remove.
9685
9686 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
9687
9688         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
9689         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
9690         (TARGET_HANDLE_OPTION): Override default.
9691         (arc_handle_option): New function.
9692         (arc_init): Remove code to set arch_cpu_string.
9693         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
9694         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
9695         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
9696         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
9697         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
9698         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
9699         (arc_rodata_string, TARGET_OPTIONS): Delete.
9700         * config/arc/arc.opt: New file.
9701
9702 2005-03-17  Richard Henderson  <rth@redhat.com>
9703
9704         * doc/extend.texi (Weak Pragmas): New section.
9705         (attribute alias): Clarify that target must be in the same
9706         translation unit.
9707
9708 2005-03-17  Richard Henderson  <rth@redhat.com>
9709
9710         * config/alpha/alpha.opt: New file.
9711         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
9712         of alpha_cpu.
9713         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
9714         alpha_fprm_string, alpha_fptm_string): Make static.
9715         (alpha_tls_size_string): Remove.
9716         (alpha_handle_option): New.
9717         (override_options): Update for alpha_cpu/alpha_tune split.
9718         (alpha_file_start): Likewise.
9719         (TARGET_DEFAULT_TARGET_FLAGS): New.
9720         (TARGET_HANDLE_OPTION): New.
9721         * config/alpha/alpha.h (alpha_tune): Declare.
9722         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
9723         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
9724         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
9725         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
9726         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
9727         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
9728         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
9729         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
9730         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
9731         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
9732         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
9733         (TARGET_DEFAULT): Remove MASK_FP.
9734         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
9735         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
9736         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
9737         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
9738         alpha_tls_size_string): Remove.
9739         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
9740         (attribute tune): Rename from attribute cpu.
9741         * config/alpha/ev4.md: Update to match.
9742         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
9743         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
9744         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
9745         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
9746         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
9747         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
9748
9749 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
9750
9751         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
9752         and return without creating new state if before_nops_num is nonzero.
9753         * config/ia64/ia64.md (first_insn): New attribute.
9754         (alloc): Set it to yes.
9755
9756 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
9757
9758         * tree-vectorizer.c (new_vec_stmt_info): Initialize
9759         STMT_VINFO_SUBVARS to NULL.
9760         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9761
9762 2005-03-16 Dale Johannesen  <dalej@apple.com>
9763
9764         * rtlanal.c (find_first_parameter_load):  Rewrite to
9765         return actual first param load or the call if none,
9766         instead of first in block, when not all loads exist.
9767
9768 2005-03-16  Roger Sayle  <roger@eyesopen.com>
9769
9770         * optabs.c (expand_copysign_absneg): Make static.
9771         * optabs.h (expand_copysign_absneg): Delete prototype.
9772         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
9773
9774 2005-03-16  Richard Henderson  <rth@redhat.com>
9775
9776         PR middle-end/15700
9777         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
9778         (alias_pairs): Rename from output_defs.
9779         (find_decl_and_mark_needed): Split out from assemble_alias.
9780         (do_assemble_alias): New.
9781         (assemble_output_def): Remove.
9782         (finish_aliases_1, finish_aliases_2): New.
9783         (process_pending_assemble_output_defs): Remove.
9784         (assemble_alias): Defer aliases for which we don't yet have a
9785         non-external decl for the target symbol.
9786         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
9787         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
9788         * toplev.c (compile_file): Use finish_aliases_2 instead of
9789         process_pending_assemble_output_defs.
9790         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
9791         (process_pending_assemble_output_defs): Remove.
9792
9793 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
9794
9795         Fix PR tree-optimization/20489
9796
9797         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
9798         for empty structures.
9799
9800 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
9801
9802         Fix PR tree-optimization/20490
9803
9804         * tree-ssa-pre.c (create_expression_by_pieces): Use
9805         force_gimple_operand on result of fold.
9806
9807 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
9808
9809         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
9810         of closing parenthesis.
9811
9812 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9813
9814         * builtins.c (expand_movstr): Update a call to
9815         fold_builtin_strcpy.
9816         (expand_builtin_strncpy): Update a call to
9817         fold_builtin_strncpy.
9818         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
9819         arguments of CALL_EXPR.
9820         (fold_builtin_1): Update calls to fold_builtin_strcpy and
9821         fold_builtin_strncpy.
9822         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
9823         * tree.h: Update the prototypes of fold_builtin_strcpy and
9824         fold_builtin_strncpy.
9825
9826 2005-03-16  Steven Bosscher  <stevenb@suse.de>
9827             Dorit Naishlos  <dorit@il.ibm.com>
9828
9829         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
9830         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
9831         error.
9832
9833 2005-03-16  Steven Bosscher  <stevenb@suse.de>
9834
9835         * tree-inline.c (walk_type_fields, walk_tree,
9836         walk_tree_without_duplicates): Move from here...
9837         * tree.c: ...to here.
9838
9839 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
9840
9841         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
9842         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
9843         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
9844         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
9845         (version): Define using $(BASEVER_c).
9846         (Makefile, config.status, build/gcov-iov.o): No longer depends on
9847         version.c.
9848         (version.o): Depend on version files; add custom generation command.
9849         (prefix.o): Define BASEVER on command line.
9850         (s-iov): Depend on version files; adjust command.
9851         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
9852         Add gcc-vers.texi.
9853         (gcc-vers.texi): New rule.
9854         (doc/%.info, doc/%.dvi): Add -I . to command line.
9855         (doc/gccinstall.dvi): Likewise.
9856         (PACKAGE): Delete.  All uses replaced with "gcc".
9857         * aclocal.m4: Do not include gcc-version.m4.
9858         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
9859         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
9860         Set is_release based on contents of DEV-PHASE.
9861         Set gcc_version based on contents of BASE-VER.
9862         Define WIN32_REGISTRY_KEY only if the user overrode the default.
9863         * config.in, configure: Regenerate.
9864         * gccbug.in: Determine version of GCC in use at runtime.
9865         * gcov-iov.c: Get version number and development phase from
9866         command line, not by including version.c.
9867         * intl.c: Replace all uses of PACKAGE with "gcc".
9868         * libada-mk.in: Delete unused "gcc_version" variable.
9869         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
9870         * version.c: (VERSUFFIX): New hook for redistributors; adjust
9871         commentary to match.
9872         (version_string): Put together from pieces.
9873         * config/alpha/x-vms: Do not use $(gcc_version).
9874         * config/i386/t-nwld: Likewise.
9875         * doc/include/gcc-common.texi: Include gcc-vers.texi for
9876         version-GCC and DEVELOPMENT.
9877
9878 2005-03-15  Roger Sayle  <roger@eyesopen.com>
9879
9880         PR tree-optimization/17454
9881         * tree.c (tree_size): Add case for TREE_BINFO.
9882         * fold-const.c (fold_checksum_tree): Only clear the overloaded
9883         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
9884
9885 2005-03-15  Roger Sayle  <roger@eyesopen.com>
9886
9887         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
9888         op1 whilst expanding the signed widenening multiply variant.
9889
9890 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
9891
9892         * toplev.c (display_target_options): Avoid unused variable warning if
9893         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
9894         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
9895         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
9896         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
9897         (mips_isa_info): New variable.
9898         (mips_parse_cpu): Remove the first argument and leave the caller
9899         to report errors.
9900         (TARGET_HANDLE_OPTION): Override default.
9901         (mips_handle_option): New function.  Move option validation code from...
9902         (override_options): ...here.  Update calls to mips_parse_cpu.
9903         * config/mips/mips.h (mips_arch_string, mips_tune_string)
9904         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
9905         (SUBTARGET_TARGET_OPTIONS): Delete.
9906         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
9907         (mno-flush-func, mtune=): New options.
9908
9909 2005-03-15  Roger Sayle  <roger@eyesopen.com>
9910             Richard Henderson  <rth@redhat.com>
9911
9912         * real.c (c4x_single_format, c4x_extended_format): Provide values
9913         for signbit_ro for c4x's single and extended floating point formats.
9914         * optabs.c (expand_copysign): Use the floating point format's
9915         signbit_ro for expanding via expand_copysign_absneg, and it's
9916         signbit_rw field for expanding via expand_copysign_bit.
9917
9918 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
9919
9920         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
9921         known_alignment_for_access_p.
9922         (known_alignment_for_access_p): New.
9923         (do_peeling_for_alignment): Field made int instead of bool and renamed
9924         to peeling_for_alignment.
9925         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
9926         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
9927         functionality used to be in vect_analyze_operations.
9928         (vect_analyze_operations): Code to determine vectorization factor was
9929         moved to vect_determine_vectorization_factor.
9930         (vect_enhance_data_refs_alignment): Update to correct alignment when it
9931         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
9932         factor.
9933         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
9934         be part of vect_analyze_operations).
9935         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
9936         creating the guard condition, as the number of iterations may be
9937         constant.
9938         (slpeel_tree_peel_loop_to_edge): Use new name of
9939         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
9940         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
9941         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
9942         (vect_do_peeling_for_alignment): Use fold.
9943         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
9944
9945         (vect_update_inits_of_dr): Renamed to
9946         vect_update_init_of_dr.
9947         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
9948         (vectorizable_store): Fix assertion to use == instead of =.
9949
9950 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
9951
9952         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
9953         call_used_regs for wCG registers.
9954
9955 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
9956
9957         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
9958         for non-offsettable memory references to cope with outstanding reload
9959         replacements, take 2.
9960
9961 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
9962
9963         PR target/18668
9964         * config/i386/i386.h (x86_fisttp): New.
9965         (TARGET_FISTTP): New macro.
9966         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
9967         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
9968         instruction when fisttp flag is set.
9969         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
9970
9971         * config/i386/i386.md (type attribute): Add fisttp.
9972         (unit attribute): Set to i387 for fisttp type.
9973         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
9974         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
9975         TARGET_FISTTP.
9976         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
9977         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
9978         macros.
9979         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
9980         patterns for TARGET_FISTTP.  Enable patterns for
9981         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
9982         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
9983         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
9984         implement fisttp x87 insn.
9985         (fix_trunc*_i387_fisttp splitters): New patterns.
9986         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
9987         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
9988         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
9989         clobber.
9990         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
9991         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
9992         Implement using mode macros. Disable patterns for TARGET_FISTTP.
9993         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
9994         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
9995         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
9996         Disable patterns for TARGET_FISTTP.
9997         (fix_trunc*_i387 splitters): Implement usign mode macros.
9998         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
9999         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
10000         (fix_trunx*_sse peephole2s): Implement using mode macros.
10001
10002 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
10003
10004         PR rtl-optimization/20291
10005         * combine.c (try_combine): If splitting fails, re-try with
10006         original combined pattern, i.e. before clobber stripping.
10007
10008 2005-03-14  Eric Christopher  <echristo@redhat.com>
10009
10010         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
10011         STACK_GROWS_DOWNWARD.
10012
10013 2005-03-14  Roger Sayle  <roger@eyesopen.com>
10014
10015         * real.h (struct real_format): Split the signbit field into two
10016         two fields, signbit_ro and signbit_rw.
10017         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
10018         mips_double_format, ieee_extended_motorola_format,
10019         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
10020         ieee_extended_intel_128_format, ibm_extended_format,
10021         mips_extended_format, ieee_quad_format, mips_quad_format,
10022         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
10023         i370_double_format, c4x_single_format, c4x_extended_format,
10024         real_internal_format): Update initializers for new field.
10025         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
10026         real_format structure.
10027         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
10028         field of the real_format structure.
10029
10030 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
10031
10032         Fix PR tree-optimization/20458
10033
10034         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
10035         DECL_EXTERNAL on STRUCT_FIELD tags.
10036         (clear_call_clobbered): Ditto.
10037         * tree-ssa-operands.c (note_addressable): Make sure the original
10038         variable doesn't slip into the addressable list if we have
10039         subvars.
10040         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
10041         tags too.
10042
10043 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
10044
10045         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
10046         (-fwide-exec-charset): Likewise.
10047         (-finput-charset): Likewise.
10048         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
10049         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
10050         * c.opt (Wnormalized): New.
10051
10052 2005-03-14  Devang Patel  <dpatel@apple.com>
10053
10054         * doc/invoke.texi: Add reference to Visibility document.
10055
10056 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
10057
10058         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
10059         MASK_SPLIT_ADDRESSES.
10060         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
10061         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
10062         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
10063         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
10064         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
10065         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
10066         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
10067         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
10068         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
10069         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
10070         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
10071         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
10072         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
10073         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
10074         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
10075         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
10076         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
10077         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
10078         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
10079         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
10080         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
10081         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
10082         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
10083         (TARGET_EXPLICIT_RELOCS): Delete.
10084         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
10085         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
10086         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
10087         (override_options): Set MASK_LONG64 if -mint64 is given and no
10088         -mlongXX option is.  Complain about -mint64 -mlong32.
10089         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
10090         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
10091         * config/mips/mips.opt: New file.
10092
10093 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
10094
10095         * config.gcc (extra_options): New variable for listing option files.
10096         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
10097         * configure.ac (extra_opt_files): New AC_SUBST variable.
10098         (tm_file_list, tm_include_list): Include options.h first.
10099         * configure: Regenerate.
10100         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
10101         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
10102         (s-options-h): New rule.
10103         (options.h): Depend on it.
10104         (TEXI_GCCINT_FILES): Add options.texi.
10105         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
10106         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
10107         * target.h (gcc_target): Add default_target_flags and handle_option.
10108         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
10109         (TARGET_HANDLE_OPTION): New macros.
10110         (TARGET_INITIALIZER): Include them.
10111         * opt-functions.awk (opt_args, nth_arg): New functions.
10112         (switch_flags): Handle the "Target" flag.
10113         (var_args): Delete.
10114         (var_name): Use opt_args and nth_arg.
10115         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
10116         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
10117         macros for the "Mask" and "InverseMask" options.
10118         * opts.h (cl_var_cond): New enum.
10119         (cl_option): Replace the "has_set_value" and "set_value" fields with
10120         "var_cond" and "var_value".
10121         (CL_TARGET): New macro.
10122         (option_enabled, print_filtered_help): Declare.
10123         (decode_options): Move definition.
10124         * opts.c (handle_option): Search for the original option before
10125         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
10126         var_cond and var_value fields.  Use targetm.handle_option to handle
10127         target options.
10128         (decode_options): Set target_flags to targetm.default_target_flags.
10129         (print_filtered_help): Make global.  Handle CL_TARGET.
10130         (option_enabled): New function.
10131         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
10132         (display_target_options, set_target_switch, print_switch_values)
10133         (default_pch_valid_p): Guard uses of target_switches with
10134         #ifdef TARGET_SWITCHES.  Also...
10135         (display_target_options): Display the CL_TARGET entries in cl_options.
10136         (set_target_option): Don't complain about the "" option when
10137         TARGET_SWITCHES is undefined.
10138         (print_switch_values): Use option_enabled.
10139         (default_pch_valid_p): Check cl_options[] when looking for something
10140         that has changed the value of target_flags.
10141         * c.opt: Remove documentation from top of file.
10142         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
10143         * doc/sourecebuild.texi: Refer to the new options documentation
10144         instead of c.opt.  Document machine-specific .opt files.
10145         * doc/tm.texi (target_flags): Say that this variable is declared
10146         by options.h.
10147         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
10148         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
10149         an alternative.
10150         * doc/options.texi: New file.
10151
10152 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
10153
10154         PR middle-end/18628
10155         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
10156         register.
10157
10158 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
10159
10160         PR c++/20280
10161         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
10162         temporary variable of pointer type if an lvalues is required.
10163         (gimplify_modify_expr_rhs): Request an rvalue from it.
10164         (gimplify_expr): Pass fallback on.
10165
10166 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
10167
10168         * cfgbuild.c: Update comments.
10169
10170 2005-03-14  Roger Sayle  <roger@eyesopen.com>
10171
10172         PR rtl-optimization/17236
10173         * optabs.c (expand_doubleword_mult): New helper function split out
10174         from expand_binop.  Permute the order in which instructions are
10175         emitted to minimize the number of simultaneously live registers.
10176         (expand_binop): Call expand_doubleword_mult to synthesize a double
10177         word multiplication.
10178
10179 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
10180
10181         * basic-block.h: Update the prototypes of cached_make_edge and
10182         rtl_make_eh_edge.
10183         * cfg.c (cached_make_edge): Take edge_cache representing one
10184         row of the adjacency matrix of edges.
10185         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
10186         (make_edges): Initialize edge_cache to represent one row of
10187         the adjacency matrix of edges.
10188
10189 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
10190
10191         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
10192         New functions.
10193         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
10194         Remove unused removed_phis variable.
10195         (conditional_replacement): Use build1/build2.
10196         (abs_replacement): Use last_and_only_stmt and build1/build2.
10197
10198 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
10199
10200         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
10201         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
10202         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
10203         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
10204         * c-common.c (handle_novops_attribute): New function.
10205         (c_common_attribute_table): Add "no vops" entry.
10206         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
10207         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
10208         * tree-ssa-operands.c (get_call_expr_operands): Do not
10209         create virtual operands for calls with ECF_NOVOPS flag.
10210         * tree.h (DECL_IS_NOVOPS): New macro.
10211         (struct tree_decl): Add novops_flag.
10212         (ECF_NOVOPS): New constant.
10213
10214 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
10215
10216         PR target/17688
10217         * config/i386/i386.c (x86_use_himode_fiop): New.
10218         (x86_use_simode_fiop): Rename from x86_use_fiop.
10219         * config/i386/i386.h (x86_use_himode_fiop): Declare.
10220         (TARGET_USE_HIMODE_FIOP): New.
10221         (x86_use_simode_fiop): Rename from x86_use_fiop.
10222         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
10223
10224         * config/i386/i386.md (X87MODEI12): New mode macro define.
10225         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
10226         to implement x87 FP compare with HImode input operands.
10227         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
10228         Use X87MODEI12 mode macro to handle HImode input operands.
10229         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
10230         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
10231         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
10232         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
10233         macro to implement x87 operators with HImode input operands.
10234         (fop splitters): Use X87MODEI12 mode macro to handle HImode
10235         input operands.
10236
10237 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
10238
10239         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
10240         integer_zerop.
10241         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
10242         constants invariant.
10243
10244 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
10245
10246         * basic-block.h (BB_VISITED): Removed.
10247         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
10248
10249 2005-03-14  Falk Hueffner  <falk@debian.org>
10250
10251         PR bootstrap/20424
10252         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
10253
10254 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
10255
10256         * ggc-zone.c: Fix comment typos.
10257
10258         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
10259         stringpool.c, config/mips/mips-protos.h: Update copyright.
10260
10261 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
10262
10263         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
10264         throughout with its typedef, "rtx".
10265         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
10266         (rs6000_tls_symbol_ref_1): Remove inline keyword.
10267         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
10268         regs in comment to match code.
10269
10270 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
10271
10272         * except.c (check_handled): Make it static.
10273         * except.h: Remove the corresponding prototype.
10274
10275         * function.c (get_func_frame_size): Make it static.
10276         * function.h: Remove the corresponding type.
10277
10278         * regclass.c (reg_class_superclasses, reg_class_subclasses):
10279         Make them static.
10280         * hard-reg-set.h: Remove the corresponding declarations.
10281
10282         * tree-cfg.c (verify_stmts): Check that
10283         bb_for_stmt (stmt) == bb for every PHI node and statement.
10284
10285 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
10286
10287         * config.gcc: Remove excess indentation.
10288         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
10289
10290 2005-03-13  Roger Sayle  <roger@eyesopen.com>
10291
10292         PR middle-end/19331
10293         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
10294         * fold-const.c (fold_sign_changed_comparison): Likewise.
10295         (fold_binary): Optimize comparisons against widened operands if
10296         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
10297
10298 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10299
10300         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
10301         (sparc_override_options): Initialize it.
10302         (sparc_struct_value_rtx): Set it on the MEM to be returned.
10303
10304 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
10305
10306         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
10307         (reg_or_none500mem_operand): New predicate.
10308         (zero_reg_mem_operand): New predicate.
10309         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
10310         to reg_or_none500mem_operand.
10311         (extendsfdf2_fpr): Add MEM alternative.
10312         (extenddftf2_internal): Change operand2 predicate to
10313         zero_reg_mem_operand.
10314
10315 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
10316
10317         * ggc-zone.c: Rewritten.
10318
10319         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
10320         if there are none.
10321         * configure.ac: Define GGC_ZONE for --with-gc=zone.
10322         * config.in: Regenerated.
10323         * configure: Regenerated.
10324         * gengtype.c (write_types_process_field, write_func_for_structure):
10325         Pass new argument to gt_pch_note_object.
10326         * ggc-common.c (struct ptr_data): Add TYPE.
10327         (gt_pch_note_object): Take TYPE argument and save it.
10328         (call_count): Update call to ggc_pch_count_object.
10329         (call_alloc): Update call to ggc_pch_alloc_object.
10330         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
10331         file.
10332         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
10333         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
10334         (ggc_alloc_zone_stat): Delete.
10335         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
10336         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
10337         (ggc_pch_alloc_object): Update prototypes.
10338         (garbage_zone): Delete.
10339         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
10340         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
10341         pointers.
10342         (tree_id_zone): New variable.
10343         (ggc_alloc_cleared_zone): Remove unused.
10344         (ggc_alloc_zone): Define.
10345         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
10346         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
10347         ggc_alloc_zone_stat.
10348         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
10349         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
10350         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
10351         (make_node_stat): Likewise.  Use tree_id_zone.
10352
10353 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
10354             Joseph S. Myers  <joseph@codesourcery.com>
10355
10356         * configure.ac: Check for MIPS TLS.
10357         * configure: Regenerated.
10358         * config/mips/mips-protos.h (enum mips_symbol_type): Add
10359         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
10360         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
10361         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
10362         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
10363         (mips_classify_symbol, mips_symbolic_constant_p)
10364         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
10365         (mips_tls_operand_p, mips_call_tls_get_addr)
10366         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
10367         (mips_tls_symbol_ref_1): New functions.
10368         (mips_legitimize_address, mips_legitimize_const_move): Call
10369         mips_legitimize_tls_address.
10370         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
10371         for MIPS16.
10372         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
10373         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
10374         (mips_char_to_class): Document V1_REG.
10375         (HAVE_AS_TLS): Provide default.
10376         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
10377         constants.
10378         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
10379         !TARGET_ABICALLS.
10380         (tls_get_tp_<mode>): New instruction.
10381
10382 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
10383
10384         * configure.ac: Update checks for target tools.
10385         * configure: Regenerated.
10386
10387 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
10388
10389         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
10390
10391 2005-03-13  Roger Sayle  <roger@eyesopen.com>
10392
10393         * expmed.c (expand_mult): Use synthetic multiplication sequences for
10394         more classes of DImode multiplication by constant.  Allow both
10395         multiplication by small negative constants (by performing a
10396         multiplication by a positive constant and negating the result) and
10397         multiplications by large powers of two, by using a left shift.
10398
10399 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
10400
10401         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
10402         of basic blocks into work_stack.
10403
10404         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
10405         config/mips/vr.h: Update copyright.
10406
10407         * c-decl.c (c_init_decl_processing): Remove useless calls to
10408         build_function_type.
10409
10410         * builtins.c (fold_trunc_transparent_mathfn,
10411         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
10412         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
10413         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
10414         fold_builtin_strcpy, fold_builtin_strncpy,
10415         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
10416         TREE_TYPE (exp).
10417
10418         * builtins.c (expand_builtin_mathfn_3): Remove local variable
10419         before_call.
10420
10421         * lambda-code.c (lambda_compute_auxillary_space): Remove local
10422         variable determinant.
10423
10424         * tree-cfg.c (group_case_labels): Remove local variable type.
10425
10426         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
10427         variable ann.
10428
10429         * tree-ssa-phiopt.c (value_replacement): Remove local variable
10430         result.
10431
10432 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
10433
10434         PR target/18251
10435         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
10436         (*movmemqi_insn): Delete.
10437         (*movmemhi): Delete.
10438
10439 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
10440
10441         * builtins.c (fold_builtin_classify): Take decomposed
10442         arguments of CALL_EXPR.
10443         (fold_builtin_1): Update a call to fold_builtin_classify.
10444
10445 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
10446
10447         PR c/20402
10448         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
10449         through into call to parser_xref_tag after parse error.
10450         (c_parser_struct_declaration): Consistently return NULL_TREE on
10451         error.
10452
10453 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
10454
10455         * tree-flow-inline.h (ref_contains_array_ref): New function.
10456         (lookup_subvars_for_var): Ditto.
10457         (get_subvars_for_var): Ditto.
10458         (var_can_have_subvars): Ditto.
10459
10460         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
10461         (struct subvar): New type.
10462
10463         * tree-dfa.c (okay_component_ref_for_subvars): New function.
10464
10465         * tree-optimize.c (init_tree_optimization_passes): Call
10466         pass_create_structure_vars.
10467
10468         * tree-ssa-alias.c: Include vec.h.
10469         (init_alias_info): Don't auto-clear call clobbered on struct-field
10470         tags.
10471         (compute_flow_insensitive_aliasing): Handle subvars.
10472         (group_aliases): Handle STRUCT_FIELD aliases.
10473         (setup_pointers_and_addressables): Ditto.
10474         Don't mark variables non-addressable if they still have
10475         addressable subvars.
10476         Also mark subvars addressable when the real variable is marked
10477         addressable.
10478         (add_pointed_to_var): Try to prune the pointed-to set by only
10479         pointing to subvars when possible.
10480         Otherwise, make sure we set addresses_needed and pt_vars to
10481         properly include subvars.
10482         (bitpos_of_field): New function.
10483         (push_fields_onto_fieldstack): Ditto.
10484         (get_or_create_used_part_for): Ditto.
10485         (create_overlap_variables_for): Ditto.
10486         (find_used_portions): Ditto.
10487         (create_structure_vars): Ditto.
10488         (pass_create_structure_vars): New structure.
10489
10490         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
10491         (get_expr_operands): Handle subvars.  Also try to turn
10492         COMPONENT_REF accesses into must-defs now that we can accurately
10493         portray it.
10494         (note_addressable): Try to only mark as addressable those subvars
10495         we know a COMPONENT_REF touches.
10496         (overlap_subvar): New function.
10497
10498         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
10499         Handle subvar storing.
10500         (vect_address_analysis): Update caller of vect_object_analysis.
10501
10502         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
10503
10504         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
10505         (STMT_VINFO_SUBVARS): New macro.
10506
10507         * common.opts: add flag_tree_salias.
10508
10509         * opts.c (decode_options): flag_tree_salias defaults to on.
10510
10511         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
10512
10513         * doc/tree-ssa.texi: Document structural alias analysis.
10514
10515 2005-03-12  Steven Bosscher  <stevenb@suse.de>
10516
10517         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
10518         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
10519         * tree-ssa-operands.c (get_expr_operands): Likewise.
10520         (get_expr_operands): Likewise for ERROR_MARK.
10521
10522 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
10523
10524         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
10525         var.
10526
10527         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
10528         removed_phis.
10529
10530         * tree-ssa-pre.c (compute_avail): Remove local variable val.
10531         (mark_operand_necessary): Remove local variable ver.
10532
10533         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
10534         variable prefix_len.
10535
10536         * value-prof.c (mod_subtract_transform): Remove local variable
10537         value.
10538
10539         * builtins.c (fold_builtin_exponent): Take decomposed
10540         arguments of CALL_EXPR.
10541         (fold_builtin_1): Update a call to fold_builtin_exponent.
10542
10543         * builtins.c (fold_builtin_logarithm): Take decomposed
10544         arguments of CALL_EXPR.
10545         (fold_builtin_1): Update a call to fold_builtin_logarithm.
10546
10547         * c-decl.c (c_init_decl_processing): Remove local variables
10548         ptr_ftype_void and ptr_ftype_ptr.
10549
10550         * gimplify.c (gimplify_expr): Remove local variables r0 and
10551         r1.
10552
10553         * reg-stack.c (move_for_stack_reg): Remove local variable
10554         push_insn.
10555         (compare_for_stack_reg): Remove local variable flags_user.
10556         (convert_regs_1): Remove local variable deleted.
10557
10558         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
10559         variable new_cond.
10560         (combine_blocks): Remove local variables exits and new_e.
10561
10562         * tree-inline.c (expand_call_inline): Remove local variable
10563         decl.
10564
10565         * tree-ssa-live.c (create_ssa_var_map,
10566         calculate_live_on_entry): Remove local variable snn.
10567
10568 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
10569
10570         * c-lex.c (c_lex_with_flags): Add parameter to call to
10571         cpp_spell_token.
10572
10573 2005-03-11  Per Bothner  <per@bothner.com>
10574
10575         * c-tree.h (struct c_declarator): New id_loc field.
10576         * c-pragma.h (c_lex_with_flags): Take position reference.
10577         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
10578         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
10579         (c_lex): Pass dummy location to c_lex_with_flags.
10580         * c-parser.c (c_lex_one_token): Set c_token's location using
10581         c_lex_with_flags, instead of input_location, which might be "ahead".
10582         (c_parser_direct_declarator): Set declarator's id_loc from
10583         c_token's id_loc.
10584         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
10585         declarator's id_loc, rather than probably-imprecise input_location.
10586         (build_id_declarator): Initialize c_declarator's id_loc field.
10587
10588 2005-03-11  Roger Sayle  <roger@eyesopen.com>
10589
10590         PR middle-end/20419
10591         * builtins.c (expand_builtin_signbit): Force the signbit's word
10592         into an integer register to avoid SUBREGs of floating point modes.
10593
10594 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
10595
10596         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
10597         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
10598         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
10599         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
10600
10601 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
10602
10603         PR rtl-optimization/20306
10604         * expr.c (emit_move_complex): Set try_int false if mode is
10605         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
10606         emit_block_move if try_int is true.
10607
10608 2005-03-11  Richard Henderson  <rth@redhat.com>
10609
10610         PR target/20415
10611         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
10612         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
10613         to match.
10614
10615 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
10616
10617         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
10618         (TARGET_FIX_VR4130): New macro.
10619         (TARGET_OPTIONS): Add -mfix-vr4130.
10620         (ISA_HAS_MACCHI): New macro.
10621         (ASM_SPEC): Add -mfix-vr4130.
10622         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
10623         (override_options): Handle mips_fix_vr4130_string.
10624         (mips_avoid_hazards): Clear all_noreorder_p
10625         if we're working around VR4130 errata and the macc alternatives
10626         are not available.
10627         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
10628         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
10629         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
10630         (MULTILIB_DEFAULTS): Remove leading "march=".
10631         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
10632         if no architecture option is given.
10633         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
10634         VR4130 multilibs.
10635         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
10636         * doc/invoke.texi: Document -mfix-vr4130.
10637
10638 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
10639
10640         * config/mips/mips.c (override_options): Only warn about -mint64
10641         deprecation if TARGET_INT64.
10642
10643 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10644
10645         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
10646         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
10647         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
10648         are non-specific regarding the nonnull parameter positions.
10649         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
10650         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
10651         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
10652         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
10653
10654         * builtins.def: Use the non-specific "nonnull" attibute lists.
10655
10656 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
10657
10658         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
10659         single_pred_edge, single_succ, single_pred): Improve comments.
10660
10661 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
10662
10663         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
10664         single_pred_edge, single_succ, single_pred): New inline functions.
10665         * bb-reorder.c (rotate_loop, find_traces_1_round,
10666         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
10667         duplicate_computed_gotos): Use the single_succ/pred functions.
10668         * cfganal.c (forwarder_block_p): Ditto.
10669         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
10670         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
10671         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
10672         merge_seq_blocks): Ditto.
10673         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
10674         * cfglayout.c (fixup_reorder_chain): Ditto.
10675         * cfgloop.c (mark_single_exit_loops, update_latch_info,
10676         canonicalize_loop_headers, verify_loop_structure): Ditto.
10677         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
10678         mfb_update_loops, create_preheader, force_single_succ_latches,
10679         create_loop_notes): Ditto.
10680         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
10681         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
10682         commit_one_edge_insertion, purge_dead_edges,
10683         cfg_layout_can_merge_blocks_p): Ditto.
10684         * except.c (sjlj_emit_function_enter): Ditto.
10685         * flow.c (init_propagate_block_info): Ditto.
10686         * function.c (thread_prologue_and_epilogue_insns): Ditto.
10687         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
10688         insert_insn_end_bb): Ditto.
10689         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
10690         find_if_case_2): Ditto.
10691         * lambda-code.c (perfect_nestify): Ditto.
10692         * lcm.c (optimize_mode_switching): Ditto.
10693         * loop-doloop.c (doloop_modify): Ditto.
10694         * loop-init.c (loop_optimizer_init): Ditto.
10695         * loop-iv.c (simplify_using_initial_values): Ditto.
10696         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
10697         * loop-unswitch.c (unswitch_loop): Ditto.
10698         * modulo-sched.c (generate_prolog_epilog): Ditto.
10699         * predict.c (combine_predictions_for_insn, estimate_probability,
10700         tree_estimate_probability, last_basic_block_p,
10701         estimate_bb_frequencies): Ditto.
10702         * profile.c (branch_prob): Ditto.
10703         * regrename.c (copyprop_hardreg_forward): Ditto.
10704         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
10705         * tracer.c (layout_superblocks): Ditto.
10706         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
10707         cfg_remove_useless_stmts_bb, cleanup_control_flow,
10708         cleanup_control_expr_graph, disband_implicit_edges,
10709         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
10710         tree_verify_flow_info, tree_make_forwarder_block,
10711         tree_forwarder_block_p, remove_forwarder_block,
10712         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
10713         * tree-if-conv.c (tree_if_conversion): Ditto.
10714         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
10715         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
10716         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
10717         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
10718         copy_loop_headers): Ditto.
10719         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
10720         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
10721         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
10722         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
10723         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
10724         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
10725         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
10726         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
10727         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
10728         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
10729         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
10730         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
10731         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
10732         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
10733         slpeel_add_loop_guard): Ditto.
10734
10735 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
10736
10737         PR tree-optimization/15784
10738         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
10739         and -1 - A to ~A.
10740
10741         * stmt.c (expand_case): Don't change index_type.  Convert minval
10742         to the proper type.
10743
10744         PR tree-optimization/20130
10745         * fold-const.c (fold): Fold x * -1 into -x.
10746
10747 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
10748
10749         PR rtl-optimization/20331
10750         * rtlanal.c (modified_between_p): Check its address first for MEM.
10751         (modified_in_p): Likewise.
10752
10753 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
10754
10755         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
10756
10757 2005-03-10  Steven Bosscher  <stevenb@suse.de>
10758
10759         * expr.c (expand_expr_real_1): If possible, use a conditional
10760         move for expanding MIN_EXPR and MAX_EXPR.
10761         Use temp for moving around rtx-en.
10762
10763 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
10764
10765         PR rtl-opt/20412
10766         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
10767         correct mode.
10768
10769 2005-03-10  Roger Sayle  <roger@eyesopen.com>
10770
10771         * builtins.c (expand_builtin_signbit): Extend to handle floating
10772         point modes wider than the largest integer type, using the
10773         operand_subword_force function to obtain the signbit's word.
10774
10775 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
10776
10777         PR target/20322
10778         * combine.c (try_combine): If recog_for_combine added CLOBBERs
10779         to NEWI2PAT, fail to combine if they are used by NEWPAT.
10780
10781 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
10782
10783         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
10784
10785 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
10786
10787         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
10788         type void.
10789         (perform_edge_inserts): Unconditionally call
10790         free_dominator_info.
10791
10792         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
10793
10794 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
10795
10796         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
10797
10798 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
10799
10800         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
10801
10802         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
10803         gcc_unreachable.
10804         (rtl_register_value_prof_hooks,
10805         tree_value_profile_transformations,
10806         tree_register_value_prof_hooks): Likewise.
10807         * var-tracking.c (stack_adjust_offset_pre_post,
10808         variable_htab_free, variable_union, dataflow_set_different_2,
10809         count_uses, variable_was_changed, set_frame_base_location,
10810         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
10811         vt_add_function_parameters): Likewise.
10812         * varasm.c (named_section_real, named_section, make_decl_rtl,
10813         asm_emit_uninitialised, assemble_integer, decode_addr_const,
10814         const_hash_1, compare_constant, copy_constant, force_const_mem,
10815         output_constant_pool_2, output_constant_pool_1, output_constant,
10816         output_constructor, make_decl_one_only, decl_tls_model,
10817         default_no_named_section, default_elf_select_section_1,
10818         default_unique_section_1): Likewise.
10819         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
10820         * vmsdbgout.c (addr_const_to_string): Likewise.
10821
10822         PR c++/20375
10823         * function.c (struct assign_parm_data_one): Remove last_named
10824         field.
10825         (assign_parm_find_data_types): Don't determine last_named.
10826         Reorder named_parm determination.
10827         (assign_parms): Only setup varargs on the last non-varadic
10828         parameter.
10829
10830 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
10831
10832         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
10833         sda base address on medium model.
10834
10835 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
10836
10837         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
10838         * cfgloop.c (flow_loop_nodes_find): Export.
10839         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
10840         Declare.
10841         * cfgloopmanip.c (fix_loop_structure): New function.
10842         * predict.c (predict_loops): Clean up the loops information.
10843         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
10844         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
10845         loop structure.
10846         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
10847         (rewrite_into_loop_closed_ssa): Declaration changed.
10848         * tree-loop-linear.c (linear_transform_loops): Add argument to
10849         rewrite_into_loop_closed_ssa call.
10850         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10851         * tree-ssa-loop-im.c (move_computations): Ditto.
10852         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
10853         * tree-vectorizer.c (vectorize_loops): Ditto.
10854         * tree-optimize.c: Include cfgloop.h.
10855         (execute_todo): Choose whether to call cleanup_tree_cfg or
10856         cleanup_tree_cfg_loop.
10857         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
10858         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
10859         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
10860         cleanup_tree_cfg_loop call.
10861         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
10862         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
10863         work on part of cfg.
10864
10865 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
10866
10867         PR inline-asm/20314
10868         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
10869         with multiple alternatives.
10870
10871         * stmt.c (parse_output_constraint): Fix a typo.
10872
10873 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
10874
10875         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
10876         assembly directive instead of deprecated "no-generics".
10877
10878 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
10879
10880         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
10881         for non-offsettable memory references to cope with outstanding reload
10882         replacements.
10883         * config/s390/s390.md ("reload_outti"): Call find_replacement to
10884         avoid losing outstanding address reloads.
10885         ("reload_outdi", "reload_outdf"): Likewise.
10886
10887 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10888
10889         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
10890         code.  Add more cbrt transformations.
10891
10892 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10893
10894         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
10895
10896 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10897
10898         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
10899         NULL_TREE when a given tree is not simplified.
10900         (fold): Return the original tree when any of the functions
10901         mentioned above NULL_TREE.
10902
10903         * fold-const.c (fold_unary, fold_binary): Take decomposed
10904         arguments, code, type, op0, and op1 in case of fold_binary.
10905         (fold): Update calls to fold_unary and fold_binary.
10906
10907 2005-03-09  Roger Sayle  <roger@eyesopen.com>
10908
10909         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
10910         a fndecl and an arglist instead of a CALL_EXPR, exp.
10911
10912 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10913
10914         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
10915
10916         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
10917
10918         * expr.c (expand_assignment): Remove orig_to_rtx.
10919
10920         * fold-const.c (int_const_binop): Remove no_overflow.
10921
10922         * ifcvt.c (noce_emit_move_insn): Remove inmode.
10923
10924         * loop-iv.c (get_biv_step_1): Remove lhs.
10925
10926         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
10927
10928         * real.c (real_nan): Remove neg.
10929
10930         * function.c (thread_prologue_and_epilogue_insns): Remove i
10931         and newinsn.
10932
10933         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
10934         tb.
10935
10936         * tree-eh.c (tree_could_trap_p): Remove idx.
10937
10938         * tree-into-ssa.c (ann): Remove ann.
10939
10940         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
10941
10942         * tree-sra.c (decide_block_copy): Remove inst_count.
10943
10944         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
10945
10946         * tree-ssa-loop-im.c (lhs): Remove.
10947
10948         * cfgbuild.c (state, STATE, SET_STATE,
10949         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
10950         make_edges.
10951         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
10952         (find_basic_blocks): Set the state of each basic block to
10953         BLOCK_NEW.
10954
10955 2005-03-08  Jeff Law  <law@redhat.com>
10956
10957         * tree-cfg.c (cleanup_control_flow): If removal of a computed
10958         goto results in the removal of edges in the CFG, then we need
10959         to recompute dominators.
10960
10961 2005-03-09  Ben Elliston  <bje@au.ibm.com>
10962
10963         * c-common.c (c_do_switch_warnings): Comment fix.
10964
10965 2005-03-08  Julian Brown  <julian@codesourcery.com>
10966
10967         * Patch from 2005-03-08 reverted for causing regressions and
10968         ppc-darwin bootstrap failure.
10969
10970 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
10971
10972         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
10973         Define the real function for ppc-darwin.
10974         * c-typeck.c (convert_arguments): Check for target-specific
10975         invalid argument call to unprototyped function.
10976         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10977         New Macro.
10978         * target.h (invalid_arg_for_unprototyped_fn): New field
10979         in struct calls.
10980         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
10981         default target hook.
10982         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
10983         Declare.
10984
10985 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10986
10987         * c-typeck.c (constructor_stack, constructor_range_stack,
10988         initializer_stack): Make them static.
10989
10990         * cfg.c (rbi_pool): Make it static.
10991
10992         * gimple-low.c (lower_stmt_body): Make it static.
10993         * tree-flow.h: Remove the corresponding prototype.  Don't
10994         declare lower_data.
10995
10996         * sched-deps.c (cache_size): Make it static.
10997
10998         * stor-layout.c (lang_adjust_rli): Make it static.
10999
11000 2005-03-08  Julian Brown  <julian@codesourcery.com>
11001
11002         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
11003         from being used for symbols with vague linkage when
11004         HAVE_GAS_COMDAT_GROUP is true.
11005
11006 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
11007
11008         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
11009         nlabel == JUMP_LABEL (jump).
11010
11011 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11012
11013         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
11014         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
11015         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
11016         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
11017
11018 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
11019
11020         PR c/14411
11021         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
11022         * c-common.c (handle_returns_twice): New function.
11023         (c_common_attribute_table): Declare eturns_twice' attribute.
11024         * doc/extend.texi: Document eturns_twice' attribute.
11025         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
11026         (struct tree_decl): Add returns_twice_flag.
11027
11028 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11029
11030         * tree-ssa-phiopt.c: Fix a comment typo.
11031
11032         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
11033         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
11034         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
11035         copyright.
11036
11037 2005-03-08  Richard Henderson  <rth@redhat.com>
11038
11039         * config/alpha/alpha.c (code_for_builtin): Replace special-case
11040         builtin codes with ctzdi2, clzdi2, popcountdi2.
11041         (struct alpha_builtin_def): Add is_const.
11042         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
11043         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
11044         (alpha_init_builtins): Init them.  Set nothrow and const attributes
11045         on builtins.
11046         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
11047         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
11048         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
11049         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
11050         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
11051         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
11052         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
11053         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
11054         (TARGET_FOLD_BUILTIN): New.
11055         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
11056         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
11057         (ffsdi2): Use ctz.
11058         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
11059
11060 2005-03-08  Ira Rosen  <irar@il.ibm.com>
11061
11062         PR tree-optimization/20122
11063         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
11064         condition of access function instead of base.
11065
11066 2005-03-07  Jeff Law  <law@redhat.com>
11067             Steven Bosscher  <stevenb@suse.de>
11068
11069         * tree-cfg.c (find_taken_edge_computed_goto): New function.
11070         (find_taken_edge): Call find_taken_edge_computed_goto as
11071         appropriate.  Allow any gimple invariant rather than just
11072         INTEGER_CST for VAL.
11073         (cleanup_control_flow): Cleanup a computed goto which has turned
11074         into a simple goto.
11075         (tree_merge_blocks): If block B has any forced labels, move
11076         them to the start of block A.
11077         * tree-ssa-dom.c (thread_across_edge): Allow threading across
11078         computed gotos as well.
11079         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
11080         removal of unnecessary computed gotos too.
11081         (lookup_redirection_data): Fix type of INSERT argument.  Callers
11082         updated.
11083
11084 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11085
11086         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
11087         Remove trailing spaces.
11088
11089         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
11090         unshare_all_trees): Make them static.
11091         * tree-gimple.h: Remove the corresponding prototypes.
11092
11093         * diagnostic.h: Remove unused prototype
11094         debug_output_buffer.
11095         * modulo-sched.c: Remove unused prototype
11096         set_row_column_for_ps.
11097
11098         * tree-ssa-phiopt.c (tree_ssa_phiopt,
11099         replace_phi_edge_with_variable): Remove unused variable i.
11100
11101 2005-03-07  Per Bothner  <per@bothner.com>
11102
11103         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
11104
11105 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
11106
11107         PR tree-opt/17671
11108         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
11109         bbs on the COND_EXPR instead of the PHI_NODEs.
11110         (candidate_bb_for_phi_optimization): Remove.
11111         (replace_phi_with_stmt): Rename to ...
11112         (replace_phi_edge_with_variable): this and change so that we
11113         replace the phi argument instead of removing the PHI.
11114         (conditional_replacement): Change so we deal with PHI with more
11115         than two arguments.
11116         (value_replacement): Likewise.
11117         (abs_replacement): Likewise.
11118
11119 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
11120
11121         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
11122         output_e500_flip_gt_bit.
11123
11124         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
11125         as bit 31.
11126         (rs6000_generate_compare): Fix logic to look at the correct bits.
11127         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
11128         Look at GT bit.
11129         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
11130         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
11131         gen_move_from_CR_gt_bit.
11132
11133         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
11134         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
11135         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
11136
11137         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
11138         (E500_CR_IOR_COMPARE): New constant.
11139
11140 2005-03-08  Earl Chew <earl_chew@agilent.com>
11141             David Billinghurst <David.Billinghurst@riotinto.com>
11142
11143         * config/i386/host-cygwin.c: New file to support precompiled
11144         headers on cygwin
11145         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
11146         * config.host: Use above files for cygwin host.
11147
11148 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
11149
11150         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
11151         ordering ops from earlier change.
11152
11153 2005-03-07  Per Bothner  <per@bothner.com>
11154
11155         Various fixes to allow us to again build if --enable-mapped-location:
11156         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
11157         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
11158         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
11159         local variable loc. Change logic appropriately.
11160         * tree-vect-transform.c (vect_finish_stmt_generation): Use
11161         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
11162         * c-parser.c (c_parser_for_statement): Initialize loc variable.
11163         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
11164         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
11165
11166 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
11167
11168         PR rtl-optimization/19683
11169         * reload1.c (choose_reload_regs): Pass the number of bits, not the
11170         number of bytes, to smallest_int_for_mode.  Fix arguments to
11171         REG_CANNOT_CHANGE_MODE_P.
11172
11173 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
11174
11175         * reorg.c (relax_delay_slots): Check that the jump is
11176         conditional before trying to invert it.
11177
11178 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11179
11180         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
11181         Make them static.
11182
11183         * calls (stack_arg_under_construction): Make it static.
11184
11185         * flow.c (regs_live_at_setjmp): Make it static.
11186         * flow.h: Remove the corresponding prototype.
11187
11188         * reload1.c (reload_startobj, reload_firstobj,
11189         something_needs_operands_changed, reload_inherited,
11190         reload_inheritance_insn, reload_override_in,
11191         reload_spill_index): Make them static.
11192
11193         * recog.c (verify_changes): Make it static.
11194         * recog.h: Remove the corresponding prototype.
11195
11196         * cfgbuild.c (find_sub_basic_blocks): Remove.
11197         * basic-block.h: Remove the corresponding prototype.
11198         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
11199         in comments.
11200         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
11201
11202         * tree-ssa-operands.c (check_build_stmt): Remove.
11203
11204         * stor-layout.c (set_alignment): Remove.
11205         * tree.h: Remove the corresponding prototype.
11206
11207         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
11208
11209         * tree-ssa-dce.c (control_dependence_map,
11210         visited_control_parents): Make them static.
11211
11212         * cfghooks.c (verify_flow_info): Remove local variable
11213         num_bb_notes.
11214
11215         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
11216         last_bb_seen.
11217
11218         * loop-unswitch.c (unswitch_loop): Remove local variable src.
11219
11220 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
11221
11222         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
11223
11224 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
11225
11226         * config/ia64/hpux.h (LINK_SPEC): Add -z.
11227         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
11228         PARALLEL for an empty structure.
11229
11230 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11231
11232         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
11233
11234         * fold-const.c (fold_binary): Unroll the very first "for"
11235         loop.
11236
11237 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
11238
11239         * config/rs6000/predicates.md (branch_comparison_operator): Remove
11240         redundant match_code test.
11241         (scc_comparison_operator): Swap match_operand and match_code
11242         tests.
11243         (branch_positive_comparison_operator): Same.
11244         (trap_comparison_operator): Use comparison_operator and swap with
11245         match_code test.
11246
11247 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11248
11249         PR target/20288
11250         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
11251         (out_movhi_r_mr): Read low byte of volatile MEM first.
11252         (out_movhi_mr_r): Write high byte of volatile MEM first.
11253
11254 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11255
11256         * cselib.c (reg_values, reg_values_size): Make them static.
11257
11258         * cse.c (cse_reg_info_table): Make it static.
11259
11260         * fold-const.c (fold_unary): Use build1 instead of copy_node.
11261
11262 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
11263
11264         * cse.c (find_best_addr): Use canon_for_address.
11265
11266 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11267
11268         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
11269         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
11270         SUBREG and MEM, respectively.
11271
11272         * fold-const.c (fold_binary): Use code instead of t.
11273
11274         * fold-const.c (optimize_minmax_comparison): Take decomposed
11275         arguments code, type, op0, and op1 instead of t.
11276         (fold_binary): Update a call to optimize_minmax_comparison.
11277
11278         * fold-const.c (fold_range_test): Take decomposed arguments
11279         code, type, op0, and op1 instead of t.
11280         (fold_binary): Update a call to fold_range_test.
11281
11282         * fold-const.c (fold_binary_op_with_conditional_arg): Take
11283         decomposed arguments code, type, op0, and op1 instead of t.
11284         (fold_binary): Update a call to fold_range_test.
11285
11286 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11287
11288         * fold-const.c (fold_binary): Avoid directly using the original
11289         expression t as much as possible.
11290
11291 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11292
11293         * c-semantics.c (build_stmt): Use TYPE_P instead of
11294         IS_NON_TYPE_CODE_CLASS.
11295         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
11296         (NON_TYPE_CHECK): Use TYPE_P instead of
11297         IS_NON_TYPE_CODE_CLASS.
11298
11299         * fold-const.c (fold): Remove handling of binary expressions.
11300
11301 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
11302
11303         * doc/c-tree.texi: Wrap comments in @r{}.
11304         * doc/cpp.texi: Likewise.
11305         * doc/cppinternals.texi: Likewise.
11306         * doc/extend.texi: Likewise.
11307         * doc/md.texi: Likewise.
11308         * doc/objc.texi: Likewise.
11309         * doc/sourcebuild.texi: Likewise.
11310         * doc/tm.texi: Likewise.
11311         * doc/tree-ssa.texi
11312
11313 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11314
11315         * predict.c (apply_return_prediction): Standardize PHI chain
11316         walking.
11317         * tree-ssa.c (ssa_redirect_edge): Likewise.
11318
11319         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
11320         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
11321         Update copyright.
11322
11323         * tree-phinodes.c (remove_phi_node): Drop the last argument.
11324         * tree-flow.h: Adjust the prototype for remove_phi_node.
11325         * lambda-code.c (perfect_nestify): Adjust a call to
11326         remove_phi_node.
11327         * tree-cfg.c
11328         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
11329         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
11330         Likewise.
11331         * tree-ssa-dce.c (remove_dead_phis): Likewise.
11332         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
11333         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
11334         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
11335
11336         * combine.c (simplify_and_const_int): Use gen_int_mode instead
11337         of GEN_INT (trunc_int_for_mode (...)).
11338         * loop-iv.c (iv_number_of_iterations): Likewise.
11339         * postreload.c (reload_cse_move2add): Likewise.
11340         * simplify-rtx.c (simplify_const_unary_operation,
11341         simplify_const_binary_operation): Likewise.
11342         * stor-layout.c (get_mode_bounds): Likewise.
11343
11344         * fold-const.c (fold_binary): New.
11345         (fold): Call fold_binary on binary expressions.
11346
11347 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
11348
11349         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
11350         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
11351         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
11352         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
11353         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
11354
11355 2005-03-04  Devang Patel  <dpatel@apple.com>
11356
11357         PR tree-optimization/18815
11358         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
11359         loops with zero exit edges.
11360
11361 2005-03-04  Devang Patel  <dpatel@apple.com>
11362
11363         * doc/invoke.texi: Remove reference to webpage that does not exist.
11364
11365 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
11366             Joseph S. Myers  <joseph@codesourcery.com>
11367
11368         PR c++/19797
11369         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
11370         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
11371         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
11372         * pa.c (get_plabel): Change argument to symbol_ref.  Call
11373         maybe_get_identifier instead of get_identifier.
11374         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
11375         (struct deferred_plabel): Replace name field with symbol field.
11376         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
11377         ASM_OUTPUT_EXTERNAL_REAL is defined.
11378         (output_global_address): Use output_addr_const for output of all
11379         symbol_refs.
11380         (output_deferred_plabels): Use symbol_ref instead of name for address
11381         output.
11382         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
11383         ASM_OUTPUT_SYMBOL_REF): New macros.
11384         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
11385         comment.
11386         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
11387         label.
11388
11389 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
11390
11391         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
11392         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
11393
11394 2005-03-04  Jeff Law  <law@redhat.com>
11395
11396         * basic-block.h (rediscover_loops_after_threading): Declare.
11397         * tree-ssa-dom.c: Include cfgloop.h.
11398         (tree_ssa_dominator_optimize): Discover loops and some basic
11399         properties.  Remove forwarder blocks recreated by loop header
11400         canonicalization.  Also mark backedges in the CFG.
11401         * tree-ssa-threadupdate.c: Include cfgloop.h
11402         (rediscover_loops_after_threading): Define.
11403         (struct local_info): New field, JUMP_THREADED.
11404         (prune_undesirable_thread_requests): New function.
11405         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
11406         then record that fact for the callers of redirct_edges.
11407         (thread_block): If BB has incoming backedges, then call
11408         prune_undesirable_thraed_requests.    Note when we are
11409         going to have to rediscover loop information.  Return a
11410         boolean indicating if any jumps were threaded.
11411         (thread_through_all_blocks): Bubble up boolean indicating
11412         if any jumps were threaded.
11413         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
11414         (tree-ssa-threadupdate.o): Similarly.
11415
11416 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11417
11418         * fold-const.c (fold_ternary): Unroll the "for" loop to
11419         extract operands.
11420
11421 2005-03-04  Andrew Haley  <aph@redhat.com>
11422
11423         * unwind-dw2-fde-glibc.c (struct
11424         unw_eh_callback_data.check_cache): New field.
11425         (frame_hdr_cache): New.
11426         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
11427         Cache frame header info.
11428
11429 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
11430
11431         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
11432         (print_c_condition): Declare.
11433         * read-rtl.c (ptr_loc): New structure.
11434         (ptr_locs, ptr_loc_obstack, joined_conditions)
11435         (joined_conditions_obstack): New variables.
11436         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
11437         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
11438         (join_c_conditions, print_c_condition): New functions.
11439         (apply_macro_to_string): Associate the new string with the same
11440         source location as the old one.
11441         (add_condition_to_string): Use join_c_conditions.
11442         (read_string): Use set_rtx_ptr_loc to record a filename and line
11443         number for the string.
11444         (read_rtx): Initialize the new variables above.
11445         * genattrtab.c (write_test_expr, write_attr_value): Use
11446         print_c_condition.
11447         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
11448         comment above the GCC_VERSION check.
11449         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
11450         Inline the definition of MAYBE_EVAL.
11451         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
11452         * genoutput.c (process_template): Likewise.
11453         * genpreds.c (write_predicate_subfunction): Likewise.
11454         (write_predicate_expr): Use print_c_condition.
11455         * genrecog.c (write_cond): Likewise.
11456         * gensupport.c (process_rtx): Use join_c_conditions to join the
11457         conditions of a define_insn_and_split.  Record a source location
11458         for the string after the "&&".
11459         (alter_test_for_insn): Use join_c_conditions.
11460
11461 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
11462
11463         Revert for now:
11464         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
11465         PR tree-optimization/15784
11466         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
11467         and -1 - A to ~A.
11468
11469 2005-03-04  Ben Elliston  <bje@au.ibm.com>
11470
11471         * gcc.c (option_map): Add --coverage.
11472         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
11473         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
11474         * config/darwin.h: Pass -lgcov for `coverage'.
11475         * doc/invoke.texi (Debugging Options): Document --coverage.
11476
11477 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11478
11479         * gcse.c (bypass_block): Use find_edge wherever possible.
11480
11481 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
11482
11483         Fix PR debug/20253
11484
11485         * c-opts.c (c_common_parse_file): Call start_source_file
11486         and end_source_file at the approriate times.
11487
11488         * dwarf2out.c (dwarf2out_finish): Don't auto-end
11489         the main file, it will be done for us now.
11490
11491 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11492
11493         * fold-const.c (fold_ternary): New.
11494         (fold): Call fold_ternary on ternary expressions.  Remove
11495         handling of ternary expressions.
11496
11497 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
11498
11499         PR tree-optimization/15784
11500         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
11501         and -1 - A to ~A.
11502
11503 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
11504
11505         * config/rs6000/predicates.md (branch_comparison_operator):
11506         Convert from C block to conditional format.
11507
11508 2005-03-03  Jan Hubicka  <jh@suse.cz>
11509
11510         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
11511         and non-constant public variables.
11512
11513 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11514
11515         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
11516         with LABEL_EXPR.
11517
11518         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
11519         EDGE_I.
11520
11521         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
11522         calls to release_ssa_name and release_phi_node.
11523
11524         * fold-const.c (fold): Remove handling of unary expressions.
11525
11526         * fold-const.c (fold_unary): Avoid directly using the original
11527         expression t as much as possible.
11528
11529 2005-03-03  Roger Sayle  <roger@eyesopen.com>
11530             Andrew Pinski  <pinskia@physics.uc.edu>
11531
11532         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
11533         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
11534
11535 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
11536
11537         Describe special registers SRP and MOF as allocatable registers.
11538         * config/cris/cris.c (cris_md_asm_clobbers): New function.
11539         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
11540         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
11541         TARGET_HAS_MUL_INSNS.
11542         (cris_print_operand) <case 'd'>: New case.
11543         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
11544         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
11545         define.
11546         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
11547         (REG_ALLOC_ORDER): Update for MOF.
11548         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
11549         SPECIAL_REGS.
11550         (GENERAL_REGS): No longer a define of ALL_REGS.
11551         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
11552         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
11553         Adjust accordingly.
11554         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
11555         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
11556         (SECONDARY_RELOAD_CLASS): Define.
11557         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
11558         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
11559         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
11560         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
11561         (REGISTER_MOVE_COST): Define.
11562         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
11563         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
11564         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
11565         (CRIS_MOF_REGNUM): New define_constants.
11566         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
11567         special registers.
11568         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
11569         New patterns.
11570         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
11571         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
11572         Adjust for MOF being properly described as a register.
11573         (indir_to_reg_split): Name this split.  Conditionalize on the
11574         destination register being a general register.
11575         (movei): Conditionalize on on operands 0 and 1 having the same
11576         register class.
11577
11578 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
11579
11580         PR target/20277
11581         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
11582         -mcpu to override any other explicitly given flags.
11583
11584 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
11585
11586         * recog.c (verify_changes, confirm_change_group): New functions,
11587         broken out of apply_change_group.
11588         (apply_change_group): Use them.
11589         * recog.h (verify_change, confirm_change_group): Declare.
11590         * rtl.h (redirect_jump_2): Declare.
11591         * jump.c (redirect_exp, invert_exp): Delete.
11592         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
11593         (redirect_jump_2): New function, broken out of redirect_jump.
11594         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
11595         (invert_jump): Use invert_jump_1 and redirect_jump_2.
11596         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
11597
11598 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
11599
11600         * varasm.c (named_section): Use xstrdup rather than doing it by
11601         hand.
11602
11603         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
11604
11605 2005-03-02  Devang Patel  <dpatel@apple.com>
11606
11607         Undo PR tree-optimization/18815 fix.
11608
11609 2005-03-02  Devang Patel  <dpatel@apple.com>
11610
11611         PR tree-optimization/18815
11612         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
11613         loops with zero exit edges.
11614
11615 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11616
11617         * cfg.c (connect_src, connect_dest, disconnect_src,
11618         disconnct_dest): New.
11619         (unchecked_make_edge, remove_edge, redirect_edge_succ,
11620         redirect_edge_pred): Use the new functions.
11621
11622         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
11623         free_dominance_info only when needed.
11624
11625 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
11626
11627         PR target/20276
11628         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
11629         (reg_or_sub_cint64_operand): Same.
11630
11631 2005-03-02  Jeff Law  <law@redhat.com>
11632
11633         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
11634         CFG_ALTERED in the main DOM iteration loop.
11635
11636 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
11637
11638         PR c++/19916
11639         * varasm.c (initializer_constant_valid_p): Allow conversions
11640         between OFFSET_TYPEs.  Tidy.
11641
11642 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
11643
11644         * config/cris/cris.md ("return"): Remove epilogue delay list
11645         sanity check.
11646
11647 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
11648
11649         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
11650         for Thumb.
11651         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
11652
11653 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11654
11655         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
11656         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
11657         config/m68k/m68k.c, config/mips/mips.h,
11658         config/rs6000/rs6000-protos.h, doc/contrib.texi,
11659         doc/include/gcc-common.texi: Update copyright.
11660
11661         PR middle-end/18029 and PR middle-end/18030
11662         * expr.c (optimize_bitfield_assignment_op): Add a special case
11663         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
11664
11665         * fold-const.c (fold_unary): New.
11666         (fold): Call fold_unary on unary expressions.
11667
11668 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
11669
11670         * cgraph.h (struct cgraph_edge): Add prev_caller and
11671         prev_callee fields.
11672         (cgraph_node_remove_callees): Export.
11673         * cgraph.c (cgraph_create_edge): Initialize prev_caller
11674         and prev_callee.
11675         (cgraph_edge_remove_callee): New function.
11676         (cgraph_edge_remove_caller): Likewise.
11677         (cgraph_remove_edge): Use.
11678         (cgraph_redirect_edge_callee): Likewise.
11679         (cgraph_node_remove_callees): New function.
11680         (cgraph_node_remove_callers): Likewise.
11681         (cgraph_remove_node): Use.
11682         * tree-optimize.c (tree_rest_of_compilation): Use
11683         cgraph_node_remove_callees instead of manual loop.
11684         * cgraphunit.c (cgraph_finalize_function): Likewise.
11685         (cgraph_expand_function): Likewise.
11686         (cgraph_remove_unreachable_nodes): Likewise.
11687
11688 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
11689
11690         PR c/8927
11691         * c-tree.h (undeclared_variable, build_external_ref): Add extra
11692         argument.
11693         * c-decl.c (undeclared_variable): Take location as argument.
11694         * c-typeck.c (build_external_ref): Likewise.
11695         * c-parser.c (c_parser_postfix_expression): Pass location of
11696         identifier to build_external_ref.
11697
11698 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
11699
11700         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
11701         CCEQ mode for branch_positive_comparison_operator test.
11702         * config/rs6000/predicates (branch_comparison_operator): Revert to
11703         define_predicate.
11704         (scc_comparison_operator): Same.
11705         (branch_positive_comparison_operator): Same.
11706
11707 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
11708
11709         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
11710         (cris_delay_slots_for_epilogue): Remove.
11711         (save_last): Move into cris_target_asm_function_epilogue.
11712         (cris_target_asm_function_epilogue): Remove tests for file being
11713         NULL.
11714         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
11715         (cris_delay_slots_for_epilogue): Remove prototypes.
11716         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
11717         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
11718
11719 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
11720
11721         * config/rs6000/predicates.md (branch_comparison_operator): Change
11722         to define_special_predicate.
11723         (scc_comparison_operator): Same.
11724         (branch_positive_comparison_operator): Same.
11725
11726 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
11727
11728         * Makefile.in (tree-ssa-sink.o): New.
11729         (OBJS-common): Add tree-ssa-sink.o.
11730         * common.opt: Add -ftree-sink
11731         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
11732         * timevar.def (TV_TREE_SINK): new timevar.
11733         * tree-flow.h (is_hidden_global_store): Prototype.
11734         * tree-optimize.c (init_tree_optimization_passes): Add
11735         pass_sink_code.
11736         * tree-pass.h (pass_sink_code): New.
11737         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
11738         for non-obvious global store store to is_hidden_global_store, and
11739         call that new function.
11740         * tree-ssa-sink.c: New file.
11741         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
11742         * doc/passes.texi: Document forward store motion.
11743         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
11744         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
11745         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
11746         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
11747
11748 2005-03-01  Per Bothner  <per@bothner.com>
11749
11750         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
11751         and we have a non-zero column-number, add it to the message.
11752         Also factor out the diagnostic_kind_text.
11753
11754 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
11755
11756         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
11757         flow_loop_pre_header_scan, flow_loop_pre_header_find,
11758         flow_loop_scan): Removed.
11759         (flow_loop_dump): Do not dump removed fields.
11760         (flow_loop_free): Do not free removed fields.
11761         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
11762         (loop_exit_edge_p): New function.
11763         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
11764         num_pre_header_edges, entry_edges, num_entries, exit_edges,
11765         num_exits, exits_doms.
11766         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
11767         LOOP_EDGES, LOOP_ALL): Removed.
11768         (flow_loop_scan): Declaration removed.
11769         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
11770         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
11771         flow_loops_find.
11772         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
11773         (if_convert): Call flow_loops_find and flow_loops_free
11774         when calling mark_loop_exit_edges.
11775         * cfgloopanal.c (mark_loop_exit_edges): Moved from
11776         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
11777         free_dominance_info calls.
11778         * loop-init.c (flow_loops_find): Ditto.
11779         * passes.c (rest_of_handle_branch_prob): Ditto.
11780         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
11781         * loop-unroll.c (analyze_insns_in_loop): Do not use
11782         EDGE_LOOP_EXIT.
11783         * predict.c (predict_loops): Do not call flow_loop_scan.
11784         Use get_loop_exit_edges.
11785         (tree_estimate_probability): Do not pass flags to flow_loops_find.
11786         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
11787         Do not use EDGE_LOOP_EXIT.
11788         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
11789         to bb_with_exit_edge_p.
11790         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
11791         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
11792         to bb_with_exit_edge_p.
11793         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
11794         EDGE_LOOP_EXIT.
11795         * tree-loop-linear.c (linear_transform_loops): Do not call
11796         flow_loop_scan.  Use loop->single_exit.
11797         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
11798         (vect_analyze_loop_form): Do not call flow_loop_scan.
11799         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
11800         loop->single_exit.
11801         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
11802         loop->single_exit.
11803         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
11804         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
11805         slpeel_tree_duplicate_loop_to_edge_cfg,
11806         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
11807         Use loop_preheader_edge and loop->single_exit.  Do not call
11808         flow_loop_scan.
11809
11810 2005-03-01  Nick Clifton  <nickc@redhat.com>
11811
11812         * config/arm/arm.c (thumb_find_work_register): Check all of the
11813         argument registers to see if they are free, and a couple of
11814         special cases where the last argument register but can be proved
11815         to be available during the function's prologue.
11816         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
11817         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
11818         thumb_unexpanded_epilogue): Use unsigned long as the type for the
11819         register bit-mask.
11820         (thumb_compute_save_reg_mask): Likewise.  Also use
11821         thumb_find_work_register() to ensure that there is agreement about
11822         which work register is going to be used in the prologue.
11823         (thumb_output_function_prologue): Use unsigned long as the type
11824         for the register bit-mask.  Also delay pushing the link register if
11825         other high registers are going to be pushed.
11826         (thumb_compute_save_reg_mask, emit_multi_reg_push,
11827         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
11828         redundant prototypes.
11829
11830 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
11831
11832         PR target/19819
11833         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
11834         and after reload in REG+REG indexed addresses without REG_POINTER
11835         set in the base and not set in the index.
11836
11837 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11838
11839         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
11840         Don't undefine here.
11841         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
11842         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
11843         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
11844         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
11845         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
11846         Delete.
11847         * config.gcc (sh*-*-linux*): Use config/linux.h.
11848
11849 2005-02-28  Dale Johannesen  <dalej@apple.com>
11850             Stan Shebs  <shebs@apple.com>
11851
11852         Rewrite of 64-bit Darwin structure-by-value pass/return.
11853         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
11854         intoffset, use_stack, named.
11855         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
11856         (rs6000_darwin64_record_arg_advance_flush):  New.
11857         (rs6000_darwin64_record_arg_advance_recurse): New.
11858         (rs6000_darwin64_record_arg_flush):  New.
11859         (rs6000_darwin64_record_arg_recurse):  New.
11860         (rs6000_darwin64_record_arg):  New.
11861         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
11862         (function_arg_boundary):  Handle 128-bit aligned structs.
11863         (function_arg_advance):  Rewrite darwin64 struct handling.
11864         (function_arg):  Call rs6000_darwin64_record_arg.
11865         (function_arg_partial_nregs):  Handle darwin64 structs.
11866         (rs6000_darwin64_function_value):  Remove.
11867         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
11868
11869 2005-02-28  Roger Sayle  <roger@eyesopen.com>
11870
11871         PR tree-optimization/20216
11872         * tree-chrec.c (tree_fold_factorial): Delete.
11873         (tree_fold_binomial): Change argument list to take a return type
11874         and change the type of K to unsigned int.  Rewrite to avoid explicit
11875         evaluation of factorials, and (recursively) calling fold to perform
11876         compile-time arithmetic.  Return NULL on (internal) overflow.
11877         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
11878         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
11879         if any intermediate calculation overflows.
11880         (chrec_apply): Update call to chrec_evaluate.
11881
11882 2005-02-28  James E Wilson  <wilson@specifixinc.com>
11883
11884         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
11885
11886 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
11887
11888         PR c/20245
11889         * c-parser.c (c_parser_compound_statement): Return error_mark_node
11890         instead of NULL_TREE on error.
11891
11892 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
11893
11894         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
11895         (EASY_VECTOR_15_ADD_SELF): Remove.
11896         (num_insns_constant_wide): Not static.
11897         (validate_condition_mode): Not static.
11898         (toc_relative_expr_p): Not static.
11899         (legitimate_indirect_address_p): Not static.
11900         (macho_lo_sum_memory_operand): Not static.
11901         (invalid_e500_subreg): Not static.
11902         (easy_vector_same): Not static.
11903         (easy_vector_splat_const): Not static.
11904         (RS6000_SYMBOL_REF_TLS_P): Remove.
11905         (any_operand): Delete.
11906         (any_parallel_operand): Delete.
11907         (count_register_operand): Delete.
11908         (altivec_register_operand): Delete.
11909         (xer_operand): Delete.
11910         (s8bit_cint_operand): Delete.
11911         (short_cint_operand): Delete.
11912         (u_short_cint_operand): Delete.
11913         (non_short_cint_operand): Delete.
11914         (exact_log2_cint_operand): Delete.
11915         (gpc_reg_operand): Delete.
11916         (cc_reg_operand): Delete.
11917         (cc_reg_not_cr0_operand): Delete.
11918         (reg_or_short_operand): Delete.
11919         (reg_or_neg_short_operand): Delete.
11920         (reg_or_aligned_short_operand): Delete.
11921         (reg_or_u_short_operand): Delete.
11922         (reg_or_cint_operand): Delete.
11923         (reg_or_arith_cint_operand): Delete.
11924         (reg_or_add_cint64_operand): Delete.
11925         (reg_or_sub_cint64_operand): Delete.
11926         (reg_or_logical_cint_operand): Delete.
11927         (got_operand): Delete.
11928         (got_no_const_operand): Delete.
11929         (easy_fp_constant): Delete.
11930         (easy_vector_constant): Delete.
11931         (easy_vector_constant_add_self): Delete.
11932         (zero_constant): Delete.
11933         (zero_fp_constant): Delete.
11934         (volatile_mem_operand): Delete.
11935         (offsettable_mem_operand): Delete.
11936         (mem_or_easy_const_operand): Delete.
11937         (add_operand): Delete.
11938         (non_add_cint_operand): Delete.
11939         (logical_operand): Delete.
11940         (non_logical_cint_operand): Delete.
11941         (mask_operand): Delete.
11942         (mask_operand_wrap): Delete.
11943         (mask64_operand): Delete.
11944         (mask64_2_operand): Delete.
11945         (and64_operand): Delete.
11946         (and64_2_operand): Delete.
11947         (and_operand): Delete.
11948         (reg_or_mem_operand): Delete.
11949         (lwa_operand): Delete.
11950         (symbol_ref_operand): Delete.
11951         (call_operand): Delete.
11952         (current_file_function_operand): Delete.
11953         (input_operand): Delete.
11954         (rs6000_nonimmediate_operand): Delete.
11955         (rs6000_tls_symbol_ref): Delete.
11956         (save_world_operation): Delete.
11957         (restore_world_operation): Delete.
11958         (load_multiple_operation): Delete.
11959         (store_multiple_operation): Delete.
11960         (vrsave_operation): Delete.
11961         (mfcr_operation): Delete.
11962         (mtcrf_operation): Delete.
11963         (lmw_operation): Delete.
11964         (stmw_operation): Delete.
11965         (branch_comparison_operator): Delete.
11966         (branch_positive_comparison_operator): Delete.
11967         (scc_comparison_operator): Delete.
11968         (trap_comparison_operator): Delete.
11969         (boolean_operator): Delete.
11970         (boolean_or_operator): Delete.
11971         (min_max_operator): Delete.
11972         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
11973         (EASY_VECTOR_15): Moved to here.
11974         (EASY_VECTOR_15_ADD_SELF): Move to here.
11975         (PREDICATE_CODES): Delete.
11976         * config/rs6000/rs6000-protos.h: Delete predicate functions.
11977         Declare functions no longer static.
11978         * config/rs6000/predicates.md: New.
11979         * config/rs6000/rs6000.md: Include predicates.md
11980
11981 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11982
11983         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
11984         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
11985         REG_ALWAYS_RETURN.
11986         * cfgrtl.c (need_fake_edge_p): Likewise.
11987         * combine.c (distribute_notes): Likewise.
11988         * emit-rtl.c (try_split): Likewise.
11989         * recog.c (peephole2_opimize): Likewise.
11990         * reg-notes.def (ALWAYS_RETURN): Remove.
11991         * rtl.h (LCT_ALWAYS_RETURN): Remove.
11992         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
11993         * tree.h (ECF_ALWAYS_RETURN): Remove.
11994
11995 2005-02-28  Roger Sayle  <roger@eyesopen.com>
11996
11997         PR middle-end/19874
11998         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
11999         between different machine modes is never a "useless" conversion.
12000
12001 2005-02-28  Geert Bosch  <bosch@gnat.com>
12002
12003         PR ada/15977
12004         * doc/contrib.texi: List contributors for Ada front end
12005
12006 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
12007
12008         * simplify-rtx.c (simplify_unary_operation_1,
12009         simplify_const_unary_operation): New, extracted from...
12010         (simplify_unary_operation): ... this one.
12011         (simplify_binary_operation_1,
12012         simplify_const_binary_operation): New, extracted from...
12013         (simplify_binary_operation): ... this one.
12014         * rtl.h (simplify_const_unary_operation,
12015         simplify_const_binary_operation): Add prototypes.
12016
12017 2005-02-28  Julian Brown  <julian@codesourcery.com>
12018
12019         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
12020         building libjava and caused PR regression/20228.
12021
12022 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
12023
12024         PR bootstrap/17383
12025         * Makefile.in (host_subdir): New.
12026         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
12027         * configure: Regenerate.
12028
12029 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
12030
12031         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
12032         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
12033         installation directory first.
12034
12035 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
12036
12037         PR target/19065.
12038         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
12039         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
12040         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
12041         * config/cris/cris.md: Tweak comments referring to Q.
12042         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
12043         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
12044         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
12045         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
12046         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
12047         Insert spaces in constraints to align alternatives vertically for
12048         readability.
12049         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
12050         operand 1: "M".
12051
12052 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12053
12054         PR rtl-optimization/17728
12055         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
12056         operand 0 from general_operand to move_dest_operand.
12057
12058 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12059
12060         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
12061         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
12062         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
12063         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
12064
12065 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
12066
12067         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
12068         * configure: Regenerate.
12069         * libada-mk.in: Remove CC; rename
12070         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
12071
12072 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
12073
12074         PR tree-opt/20188
12075         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
12076         for the lhs, also walk over the tree.  Likewise for rhs.
12077
12078 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
12079
12080         * tree-ssa-dom.c (simple_iv_increment_p): New function.
12081         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
12082         Do not propagate value of iv before increment over the increment.
12083
12084 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
12085
12086         * c-parser.c: New file.
12087         * c-parse.in: Remove.
12088         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
12089         Remove.
12090         (c-parser.o): Add dependencies.
12091         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
12092         maintainer-clean, TAGS): Update.
12093         * c-config-lang.in (gtfiles): Update.
12094         * gengtype-lex.l: Don't handle "@@".
12095         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
12096         objc_build_synchronized, objc_begin_try_stmt,
12097         objc_begin_catch_clause, objc_finish_catch_clause,
12098         objc_build_finally_clause, objc_finish_try_stmt): New.
12099         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
12100         type_seen_p.
12101         (c_parse_init): Update comment.
12102         * c-decl.c (c_init_decl_processing): Update comment.
12103         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12104         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
12105         new c_declspecs members.
12106
12107 2005-02-25  Julian Brown  <julian@codesourcery.com>
12108
12109         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
12110         from being used for symbols with vague linkage when
12111         HAVE_GAS_COMDAT_GROUP is true.
12112
12113 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
12114
12115         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
12116
12117 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
12118
12119         PR target/19930
12120         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
12121         (LIBGCC2_HAS_DF_MODE): New.
12122         (LIBGCC2_HAS_XF_MODE): New.
12123         (LIBGCC2_HAS_TF_MODE): New.
12124         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
12125         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
12126         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
12127         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
12128         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
12129         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
12130         and add _fixtfdi, _fixunstfdi, _floatditf
12131         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
12132         L_fixunstfdi, L_floatditf.
12133         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
12134         (LIBGCC2_HAS_TF_MODE): Define.
12135
12136 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
12137
12138         PR tree-optimization/20204
12139         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
12140         REWRITE_THIS_STMT markers on PHI nodes.
12141         (rewrite_initialize_block): Likewise.
12142
12143 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
12144
12145         * version.c (version_string): Update to 4.1.
12146
12147 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
12148
12149         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
12150         Clarify that the alternative way doesn't work in GNU C++.
12151
12152 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
12153
12154         PR tree-optimization/19937
12155         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
12156         to the type of the induction variable.
12157
12158 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12159
12160         PR rtl-optimization/20117
12161         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
12162         the block including noncopyable insn.
12163
12164 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12165
12166         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
12167         calls to find_reg_note.
12168
12169 2005-02-24  Richard Henderson  <rth@redhat.com>
12170
12171         PR tree-opt/20127
12172         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
12173         the type.
12174
12175 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
12176
12177         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
12178         vector types if to use base reg for misaligned non-word ld/std.
12179
12180 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
12181
12182         PR target/14619
12183         * config/cris/cris.c (cris_target_asm_function_prologue): Create
12184         dwarf2 label manually and put it after, not before the prologue.
12185
12186 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
12187
12188         PR target/19019
12189         * reload.c (operands_match_p): Only increment register number for
12190         SCALAR_INT_MODE_P modes in multiple hard registers.
12191
12192         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
12193         Fix formatting.
12194
12195 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12196
12197         * ChangeLog.5: Fix log message typo(s).
12198         * ChangeLog.7: Likewise.
12199         * ChangeLog.tree-ssa: Likewise.
12200         * cfgexpand.c: Fix comment typo(s).
12201         * conflict.c: Likewise.
12202         * defaults.h: Likewise.
12203         * dwarf2out.c: Likewise.
12204         * gcse.c: Likewise.
12205         * ggc-page.c: Likewise.
12206         * tree-eh.c: Likewise.
12207         * tree-ssa-dom.c: Likewise.
12208
12209 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
12210
12211         PR target/19019
12212         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
12213         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
12214         if SHARED is defined.
12215
12216         PR target/20196
12217         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
12218         allow splitting only if operands 0 and 3 don't overlap.
12219
12220 2005-02-24  Richard Henderson  <rth@redhat.com>
12221
12222         PR middle-end/19953
12223         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
12224         (fold_builtin_1): Call them.
12225         * fold-const.c (fold_complex_mult_parts): Split out from ...
12226         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
12227         (fold_complex_div_parts, fold_complex_div): New.
12228         (fold): Use them.
12229         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
12230
12231 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12232
12233         * tree-ssa-ccp.c (visit_assignment): Verify that result of
12234         VIEW_CONVERT_EXPR is_gimple_min_invariant.
12235
12236         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
12237         (print_node): Likewise.
12238         Print TYPE_SIZES_GIMPLIFIED.
12239
12240 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
12241
12242         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
12243         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
12244         operands as commutative in constraints.
12245
12246 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
12247
12248         * tree-into-ssa.c: Re-organize internal functions.
12249
12250 2005-02-24  Richard Henderson  <rth@redhat.com>
12251
12252         PR middle-end/18902
12253         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
12254         for c99.
12255         * common.opt (fcx-limited-range): New.
12256         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
12257         * toplev.c (flag_complex_method): Initialize to 1.
12258         (process_options): Set flag_complex_method to 0 if
12259         flag_cx_limited_range.
12260         * doc/invoke.texi (-fcx-limited-range): New.
12261
12262 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12263
12264         * cse.c (delete_trivially_dead_insns): Speed up by using
12265         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
12266         prev_real_insn.
12267
12268 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
12269
12270         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
12271         functions when -mid-shared-library is being used.
12272
12273 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
12274
12275         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
12276         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
12277         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
12278         * system.h: Poison LINK_LIBGCC_SPECIAL.
12279
12280 2005-02-23  James E Wilson  <wilson@specifixinc.com>
12281
12282         * gengtype.c (note_insn_name): Make 1 element larger.
12283
12284 2005-02-23  Roger Sayle  <roger@eyesopen.com>
12285
12286         PR target/20018
12287         PR rtl-optimization/20097
12288         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
12289         BImode SUBREGs of SImode registers which confuse the ia64 backend.
12290
12291 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
12292
12293         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
12294         * t-aix52 (SHLIB_INSTALL): Same.
12295
12296 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12297
12298         * genpreds.c: Update copyright.
12299
12300 2005-02-23  Michael Beach  <michaelb@ieee.org>
12301
12302         PR target/20159
12303         * config/sparc/t-elf (startup files): Assemble with CPP.
12304
12305 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
12306
12307         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
12308         (write_predicate_expr): Likewise.
12309
12310 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
12311
12312         PR tree-optimization/20100
12313         PR tree-optimization/20115
12314         * tree-optimize.c (init_tree_optimization_passes): Remove
12315         pass_maybe_create_global_var.
12316         * tree-pass.h (pass_maybe_create_global_var): Remove.
12317         * tree-ssa-alias.c (aliases_computed_p): Declare.
12318         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
12319         (count_calls_and_maybe_create_global_var): Remove.
12320         (pass_maybe_create_global_var): Remove.
12321         (init_alias_info): Do not declare aliases_computed_p.
12322         (maybe_create_global_var): If the function contains no
12323         call-clobbered variables and a mix of pure/const and regular
12324         function calls, create .GLOBAL_VAR.
12325         Mark all call-clobbered variables for renaming.
12326         (merge_pointed_to_info): Update comment.
12327         (add_pointed_to_var): Likewise.
12328         (is_escape_site): Likewise.
12329         Accept struct alias_info * instead of size_t *.
12330         Update all users.
12331         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
12332         as necessary.
12333         * tree-ssa-operands.c (get_call_expr_operands): If
12334         ALIASES_COMPUTED_P is false, do not add call-clobbering
12335         operands.
12336         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
12337         (delete_tree_ssa): Likewise.
12338
12339 2005-02-22  James E Wilson  <wilson@specifixinc.com>
12340
12341         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
12342         (do_compile): Do call it here.
12343
12344 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12345
12346         PR rtl-optimization/20017.
12347         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
12348         rest_of_handle_cse2, rest_of_handle_gcse): Call
12349         delete_dead_jumptables immediately before calling cleanup_cfg.
12350
12351 2005-02-22  Devang Patel  <dpatel@apple.com>
12352
12353         PR 19952
12354         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
12355         all labels
12356
12357 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
12358
12359         * config/rs6000/aix.h (WINT_TYPE): Define.
12360
12361 2005-02-22  Stan Shebs  <shebs@apple.com>
12362
12363         * config/rs6000/rs6000.c (rs6000_override_options): Default to
12364         natural alignment for 64-bit Darwin.
12365         (rs6000_parse_alignment_option): Warn about uses of -malign-power
12366         on 64-bit Darwin.
12367         * doc/invoke.texi: Document this.
12368
12369 2005-02-22  DJ Delorie  <dj@redhat.com>
12370
12371         * c-common.c (c_common_type_for_mode): Pass the mode's precision
12372         to make_[un]signed_type, not the mode itself.
12373
12374 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12375
12376         * cfg.c (cached_make_edge): Call make_edge if edge cache is
12377         not available.  Use tail calls wherever possible.
12378         (make_edge): Call unchecked_make_edge to create an edge.
12379
12380         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
12381         (coalesce_ssa_name): Don't check for
12382         SSANORM_USE_COALESCE_LIST.
12383         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
12384
12385 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
12386
12387         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
12388         (rewrite_into_ssa): ... here.
12389
12390 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
12391
12392         PR tree-optimization/19786
12393         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
12394         tag to another's may-alias bitmap when adding to the other's list.
12395
12396 2005-02-21  DJ Delorie  <dj@redhat.com>
12397
12398         * tree-ssa-loop-ivopts.c (computation_cost): Start register
12399         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
12400         registers in unsupported ways.
12401         * expmed.c (init_expmed): Likewise.
12402
12403 2005-02-21  Stan Cox  <scox@redhat.com>
12404
12405         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
12406
12407 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12408
12409         * tree-cfg.c (fold_cond_expr_cond): New.
12410         (make_edges): Call fold_cond_expr_cond.
12411         (find_taken_edge): Accept nothing but INTEGER_CST.
12412         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
12413         and 1.
12414         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
12415
12416         * flow.c (delete_dead_jumptables): Speed up by scanning insns
12417         that do not belong to any basic block.
12418
12419 2005-02-21  Jeff Law  <law@redhat.com>
12420
12421         * cfganal.c (find_unreachable_blocks): Manually CSE load of
12422         e->dest.
12423
12424 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12425
12426         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
12427         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
12428         Adjust their definitions.
12429         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
12430         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
12431
12432         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
12433         genautomata.c, langhooks.c, langhooks.h, system.h,
12434         config/arm/lib1funcs.asm: Update copyright.
12435
12436 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
12437
12438         * dbxout.c (dbxout_function_end): Emit Lscope label always.
12439
12440 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
12441
12442         PR bootstrap/13770
12443         * doc/install.texi: Document --with-gc.
12444
12445 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
12446
12447         * simplify-rtx.c (simplify_unary_operation): Add a missing
12448         "break" statement.
12449
12450 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
12451
12452         PR tree-optimization/18663
12453         * tree-ssa-dom.c (extract_range_from_cond): Return 0
12454         if the type has variable bounds.
12455
12456 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12457
12458         * gcse.c: Remove an obsolete comment.
12459
12460         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
12461
12462 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
12463
12464         * doc/extend.texi (Function Attributes) <Attribute const>: The
12465         attribute "pure" is below this text, not above.
12466
12467 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12468
12469         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
12470         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
12471         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
12472
12473 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
12474
12475         PR 18785
12476         * langhooks.h (struct lang_hooks): Add to_target_charset.
12477         * langhooks.c (lhd_to_target_charset): New function.
12478         * langhooks-def.h: Declare lhd_to_target_charset.
12479         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
12480         (LANG_HOOKS_INITIALIZER): Update.
12481         * c-common.c (c_common_to_target_charset): New function.
12482         * c-common.h: Declare it.
12483         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
12484         c_common_to_target_charset.
12485
12486         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
12487         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
12488         Delete definitions.
12489         * system.h: Poison them.
12490         * doc/tm.texi: Don't discuss them.
12491         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
12492         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
12493         (pp_c_char): Do not attempt to generate letter escapes for
12494         newline, tab, etc.
12495         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
12496         * config/mips/mips.c (mips_output_ascii): Likewise.
12497
12498 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
12499
12500         PR tree-optimization/19951
12501         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
12502         is abnormal.
12503
12504 2005-02-19  Steven Bosscher  <stevenb@suse.de>
12505
12506         PR middle-end/19698
12507         * function.h (struct function): New field `max_loop_depth'.
12508         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
12509         (flow_loops_find): Reset the max loop depth count before finding loops.
12510         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
12511         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
12512         (calculate_global_regs_live): Make sure the loop will terminate
12513         when the initial sets are not empty.
12514
12515 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
12516
12517         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
12518         object inside.
12519         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
12520
12521 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
12522
12523         PR other/19525
12524         * doc/invoke.texi: Remove documentation of %M spec.
12525         * gcc.c: Likewise.
12526         (init_spec): Remove %M suffix from -lgcc_s.
12527         (do_spec_1): Remove 'M' case.
12528         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
12529         to put shared libraries in the multilib directory.  Remove the
12530         shlib_so_soname substitution variable.  Don't add a multilib encoding
12531         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
12532         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
12533         SHLIB_INSTALL as well as SHLIB_LINK.
12534         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
12535         (SHLIB_NAME): Delete.
12536         (SHLIB_DIR): New macro.
12537         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
12538         (SHLIB_INSTALL): Adjust accordingly.
12539         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
12540         * config/t-slibgcc-sld: Likewise.
12541         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
12542         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
12543         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
12544         in $(SHLIB_DIR).
12545         (SHLIBUNWIND_INSTALL): Adjust accordingly.
12546         * config/i386/t-nwld (SHLIB_SONAME): Delete.
12547         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
12548         Use @shlib_base_name@ instead of @shlib_so_name@.
12549         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
12550         and @shlib_base_name@.so in @multilib_dir@.
12551         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
12552         to the install path.
12553         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
12554         (SHLIB_LINK): Remove previous workaround.
12555         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
12556         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
12557         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
12558         the install path.
12559         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
12560         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
12561         (SHLIB_INSTALL): Adjust accordingly.
12562         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
12563         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
12564         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
12565         config/t-slibgcc-elf-ver.
12566
12567 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
12568             Jakub Jelinek  <jakub@redhat.com>
12569
12570         PR tree-optimization/19828
12571         * tree-ssa-loop-im.c: Add a TODO comment.
12572         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
12573         without side-effects.
12574
12575 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
12576
12577         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
12578         call fold_convert.
12579
12580 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
12581
12582         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
12583         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
12584         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
12585         functions.
12586         (ia64_reorg): Delete fixup_errata call.
12587         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
12588         (TARGET_SWITCHES): Delete -mb-step entry.
12589
12590 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
12591
12592         PR c/20043
12593         * c-typeck.c (composite_type): Handle quals in transparent unions.
12594         (type_lists_compatible_p): Likewise.
12595
12596 2005-02-18  Stan Shebs  <shebs@apple.com>
12597
12598         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
12599         expressions in the .literal8 section.
12600
12601 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
12602
12603         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
12604
12605 2005-02-18  Roger Sayle  <roger@eyesopen.com>
12606
12607         * fold-const.c (constant_boolean_node): Always create values of the
12608         specified type, don't bother calling truthvalue_conversion.
12609
12610 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
12611
12612         * except.c (output_function_exception_table): Call
12613         assemble_external_libcall (eh_personality_libfunc).
12614
12615 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
12616
12617         PR target/19886
12618         * config/ia64/ia64.h (struct machine_function): Add state_num.
12619         * config/ia64/ia64.c (process_epilogue,
12620         process_for_unwind_directive): Use new unwind state numbers each
12621         time rather than state 1.
12622
12623 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12624
12625         PR target/20054
12626         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
12627         before the "*llgt_didi" pattern.
12628
12629 2005-02-18  Jason Merrill  <jason@redhat.com>
12630
12631         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
12632
12633 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
12634
12635         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
12636         (div0): Use it in place of ARM_FUNC_ALIAS.
12637         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
12638
12639 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
12640
12641         PR middle-end/20030
12642         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
12643         access, the lower bound of the array type if it exists.
12644
12645 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
12646
12647         PR c++/20008
12648         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
12649         cases that are out-of-range for the index type.
12650
12651 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
12652
12653         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
12654         (estimate_case_costs): Don't call convert.
12655         * expmed.c (expand_shift): Likewise.
12656         (make_tree): Call fold_convert instead of convert.
12657
12658 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
12659
12660         PR c++/19813
12661         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
12662         that ref to be marked MEM_READONLY_P doesn't have base that needs
12663         constructing.
12664
12665 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
12666
12667         * genautomata.c (output_get_cpu_unit_code_func,
12668         output_cpu_unit_reservation_p): Don't generate old-style function
12669         definitions.
12670
12671 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
12672
12673         PR c++/20023
12674         PR tree-optimization/20009
12675         * convert.c (convert_to_integer): Revert 2005-02-16 change.
12676
12677         PR tree-optimization/18947
12678         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
12679         inline, remove all nodes that are inlined into the extern inline
12680         being redefined.
12681
12682 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12683
12684         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
12685         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
12686         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
12687         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
12688         Update copyright.
12689
12690 2005-02-17  Roger Sayle  <roger@eyesopen.com>
12691
12692         PR tree-optimization/19917
12693         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
12694         to be potentially trapping.
12695
12696 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12697
12698         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
12699
12700 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12701
12702         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
12703         tem becomes a local variable which is set to the value of the
12704         back end defined INITIAL_FRAME_ADDRESS macro.
12705         (expand_builtin_frame_address): Omit the base parameter to
12706         expand_builtin_return_addr.
12707         (expand_builtin_profile_func): Likewise.
12708         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
12709         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
12710         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
12711
12712 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
12713
12714         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
12715         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
12716         * config/frv/frv.c (frv_function_epilogue): Likewise.
12717
12718 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
12719
12720         * lambda-code (perfect_nestify): Remove mark/unmark
12721         for rewriting hack.
12722         * tree-loop-linear.c (linear_transform_loops): Add
12723         rewrite_into_ssa call so that ssa is correct for
12724         rewriting into loop closed.
12725
12726 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
12727
12728         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
12729         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
12730         BITMAP_FREE.
12731         * bt-load.c (btr_def_live_range, combine_btr_defs,
12732         migrate_btr_def, migrate_btr_defs): Likewise.
12733         * cfgcleanup.c (thread_jump): Likewise.
12734         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
12735         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
12736         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
12737         df_rd_local_compute, df_reg_info_compute): Likewise.
12738         * dominance.c (init_dom_info, free_dom_info): Likewise.
12739         * flow.c (init_propagate_block_info,
12740         free_propagate_block_info): Likewise.
12741         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
12742         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
12743         modify_reg_pav): Likewise.
12744         * loop-invariant.c (find_defs, find_invariant_insn,
12745         find_invariants, free_inv_motion_data): Likewise.
12746         * predict.c (tree_predict_by_opcode,
12747         estimate_bb_frequencies): Likewise.
12748         * stmt.c (expand_case): Likewise.
12749         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
12750         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
12751         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
12752         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
12753         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
12754         rewrite_ssa_into_ssa): Likewise.
12755         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12756         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
12757         analyze_edges_for_bb, perform_edge_inserts): Likewise.
12758         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
12759         * tree-sra.c (tree_sra): Likewise.
12760         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
12761         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
12762         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
12763         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
12764         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
12765         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
12766         Likewise.
12767         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
12768         calculate_live_on_entry, calculate_live_on_exit,
12769         build_tree_conflict_graph): Likewise.
12770         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
12771         record_important_candidates, set_use_iv_cost, find_depends,
12772         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
12773         tree_ssa_iv_optimize_finalize): Likewise.
12774         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
12775         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
12776         tree_duplicate_loop_to_header_edge): Likewise.
12777         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
12778         * tree-ssa.c (verify_flow_insensitive_alias_info,
12779         verify_name_tags, verify_ssa, init_tree_ssa,
12780         delete_tree_ssa): Likewise.
12781         * tree-ssanames.c (marked_ssa_names, init_ssanames,
12782         fini_ssanames): Likewise.
12783         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
12784
12785 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
12786
12787         * config/rs6000/t-rtems: Completely reworked.
12788
12789 2005-02-17  Ira Rosen  <irar@il.ibm.com>
12790
12791         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
12792
12793 2005-02-17  Ira Rosen  <irar@il.ibm.com>
12794
12795         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
12796         POINTER_TYPE_P when checking that type is a pointer.
12797         (vect_get_memtag): Remove.
12798         (vect_address_analysis): Use POINTER_TYPE_P. Call
12799         vect_object_analysis with dummy parameter for memtag.
12800         (vect_object_analysis): Extract memtag (functionality that
12801         used to be in vect_get_memtag and moved here). Fix printings.
12802         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
12803         with correct parameters. Remove call to vect_get_memtag.
12804
12805 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
12806
12807         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
12808         (tree-vectorizer.o): Added missing dependencies.
12809
12810         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
12811         decleration.
12812         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
12813         declaration in tree-vectorizer.c, now has an extern declaration in
12814         tree-vectorizer.h).
12815         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
12816         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
12817         get_vectype_for_scalar_type, vect_is_simple_use,
12818         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
12819         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
12820         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
12821         vectorizable_store, vectorizable_operation, vectorizable_assignment,
12822         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
12823         find_loop_location): Likewise.
12824
12825         * tree-vectorizer.c (langhooks.h): #include removed.
12826         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
12827         moved to tree-vectorized.h.
12828         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
12829         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
12830         get_vectype_for_scalar_type, vect_is_simple_use,
12831         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
12832         vect_supportable_dr_alignment, new_loop_vec_info,
12833         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
12834         vect_set_verbosity_level, find_loop_location): Likewise.
12835
12836         (vect_analyze_loop): Function externalized. Declaration moved to
12837         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
12838         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
12839         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
12840         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
12841         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
12842         vect_enhance_data_refs_alignment, vect_analyze_operations,
12843         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
12844         vect_stmt_relevant_p, vect_get_loop_niters,
12845         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
12846         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
12847         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
12848         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
12849         vect_get_memtag): Likewise.
12850
12851         (vectorizable_load): Function externalized. Declaration moved to
12852         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
12853         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
12854         vect_transform_loop): Likewise.
12855         (vect_transform_stmt): Moved to tree-vect-transform.c.
12856         (vect_align_data_ref, vect_create_destination_var,
12857         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
12858         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
12859         vect_get_vec_def_for_operand, vect_init_vector,
12860         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
12861         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
12862         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
12863         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
12864         vect_do_peeling_for_loop_bound): Likewise.
12865
12866         * tree-vect-analyze.c: New file.
12867         * tree-vect-transform.c: New file.
12868
12869 2005-02-17  Jason Merrill  <jason@redhat.com>
12870
12871         PR mudflap/19319, c++/19317
12872         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
12873         slot explicit.
12874
12875 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
12876
12877         * doc/install.texi (Specific): Update link for Darwin-specific
12878         tool binary site.
12879
12880 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
12881
12882         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
12883         constant_boolean_node.
12884
12885 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
12886
12887         PR target/19019
12888         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12889         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
12890
12891 2005-02-16  Richard Henderson  <rth@redhat.com>
12892
12893         PR 19920
12894         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
12895         with W_TYPE_SIZE.
12896         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
12897         replace uses with Wtype_MAXp1_F.
12898         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
12899         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
12900         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
12901         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
12902         and HAVE_TFMODE as appropriate.
12903         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
12904         (__floatdisf): Likewise.
12905         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
12906         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
12907         (Wtype_MAXp1_F): New.
12908         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
12909         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
12910
12911 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
12912
12913         * PR target/19162
12914         * arm.c (arm_apply_result_size): New function.
12915         * arm.h (APPLY_RESULT_SIZE): Define.
12916         * arm-protos.h (arm_apply_result_size): Add prototype.
12917         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
12918         (movxf): New expand.
12919         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
12920         (call_value_symbol): Remove predicate for operand 0.
12921         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
12922         (untyped_call): Rework to correclty return values for any type.
12923         (untyped_return): New expand.
12924         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
12925
12926 2005-02-16  Stan Shebs  <shebs@apple.com>
12927
12928         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
12929         * config/rs6000/t-darwin8: New, for 64-bit multilib.
12930
12931 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12932
12933         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
12934         configure settings on Solaris 7 and later.
12935
12936 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
12937
12938         PR tree-optimization/19865
12939         * tree-optimize.c (init_tree_optimization_passes): Run
12940         pass_may_alias after pass_sra.
12941
12942 2005-02-16  Richard Henderson  <rth@redhat.com>
12943             Stuart Hastings  <stuart@apple.com>
12944
12945         PR debug/19521
12946         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
12947         Do nothing if debug info suppressed for this function.
12948         (dbxout_begin_function): Early exit if debug info suppressed for
12949         this function.
12950
12951 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12952
12953         PR target/20007
12954         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
12955         find_basic_blocks.
12956         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12957
12958         PR tree-optimization/19967
12959         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
12960         expand_builtin_strchr, expand_builtin_strrchr): Take a new
12961         argument TYPE.  Adjust calls to fold_builtin_XXX.
12962         (expand_builtin, fold_builtin_1): Adjust calls to
12963         expand_builtin_XXX.
12964         (fold_builtin_strchr, fold_builtin_strpbrk,
12965         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
12966         result to a requested type TYPE.
12967
12968 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
12969
12970         PR middle-end/19857
12971         * fold-const.c (fold): Don't optimize (T)(x & cst) to
12972         (T)x & (T)cst if (T)cst overflows.
12973         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
12974         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
12975
12976 2005-02-15  Jeff Law  <law@redhat.com>
12977
12978         * gcse.c (blocks_with_calls): New bitmap.
12979         (alloc_gcse_mem): Allocate it.
12980         (free_gcse_mem): Free it.
12981         (clear_modifY_mem_tables): Clear it.
12982         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
12983         when we encounter CALL_INSNs.
12984         (compute_transp, case MEM): Handle blocks with calls separate
12985         from blocks without calls.  Use bitmap iterators rather than
12986         FOR_EACH_BB.
12987
12988 2005-02-15  Peter O'Gorman  <peter@pogma.com>
12989
12990         PR bootstrap/18810
12991         * mklibgcc.in (vis_hide): Use a temporary object file, not
12992         -o /dev/null.
12993
12994 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
12995
12996         PR target/19924
12997         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
12998         access optimization.
12999
13000 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
13001             Alan Modra  <amodra@bigpond.net.au>
13002
13003         PR target/19019
13004         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
13005         (_xlqsub): Rename to __gcc_qsub.
13006         (_xlqmul): Rename to __gcc_qmul.
13007         (_xlqdiv): Rename to __gcc_qdiv.
13008         Provide versioned symbol aliases with old names.
13009         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
13010         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
13011         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
13012         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
13013         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
13014
13015 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
13016
13017         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
13018         Fold ~(A - 1) and ~(A + -1) to -A.
13019
13020 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
13021
13022         PR pch/14940
13023         PR target/19300
13024         * config/host-linux.c (linux_gt_pch_use_address): Copy from
13025         config/pa/pa-host.c:pa_gt_pch_use_address.
13026
13027 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
13028
13029         * tree-vn.c (get_value_handle): Make sure that given an
13030         is_gimple_min_invariant expression, we always return it.
13031
13032 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13033
13034         * passes.c (rest_of_handle_gcse): Fix a comment.
13035
13036 2005-02-15  Jeff Law  <law@redhat.com>
13037
13038         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
13039         bitmap.
13040         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
13041         (canon_list_insert, record_last_mem_set_info): Similarly.
13042         (clear_modify_mem_tables): Similarly.
13043
13044 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13045
13046         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
13047         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
13048         config/mips/mips.md, config/rs6000/aix.h,
13049         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
13050
13051 2005-02-15  Richard Henderson  <rth@redhat.com>
13052
13053         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
13054         call to be best_edge.
13055
13056 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
13057
13058         * basic-block.h: Adjust the prototype for find_basic_blocks.
13059         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
13060         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
13061         find_basic_blocks.
13062
13063         * flow.c (recompute_reg_usage): Remove all arguments.
13064         * passes.c (rest_of_compilation): Adjust the call to
13065         recompute_reg_usage.
13066         * rtl.h: Adjust the prototype for recompute_reg_usage.
13067
13068 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
13069
13070         * tree-dump.c (dump_files): Update to reflect new member
13071         of dump_file_info.
13072         (dump_register): Add new argument.
13073         Set glob name.
13074         (dump_switch_p_1): Check against glob name if doglob was passed.
13075         (dump_switch_p): Check against regular first, then glob if
13076         we didn't have any hits on the dump name.
13077         * tree-optimize.c (register_one_dump_file):
13078         Pass in glob name as well.
13079         * tree-pass.h (struct dump_file_info): Add glob
13080         member.
13081
13082 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
13083
13084         PR preprocessor/16323
13085         * doc/invoke.texi: Document that -Wendif-labels is on by default.
13086
13087 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
13088
13089         PR target/19019
13090         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
13091         (trunctfdf2_internal1): New.
13092         (trunctfdf2_internal2): Renamed from trunctfdf2.
13093
13094 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
13095
13096         PR tree-optimization/19853
13097         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
13098
13099 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
13100
13101         * passes.c (rest_of_handle_loop_optimize): Remove calls to
13102         delete_dead_jumptables and cleanup_cfg.
13103
13104 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
13105
13106         * reload.c (find_reloads): Swap address_reloaded flags when
13107         swapping commutative operands.
13108
13109 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
13110
13111         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
13112         Use standard_iv_increment_position for computing the bsi position
13113         for create_iv.
13114         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
13115         the bsi position.
13116
13117 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
13118
13119         PR target/17428
13120         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
13121         life range of hard registers.
13122         * value-prof.c (insn_prefetch_values_to_profile): Only
13123         scan normal insns.
13124
13125         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
13126         profile in libcalls.
13127
13128 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
13129
13130         * bitmap.h (bitmap_and_compl_into): Return bool.
13131         * bitmap.c (bitmap_and_compl_into): Return changed flag.
13132
13133 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
13134
13135         PR tree-optimization/19944
13136         * fold-const.c (fold): Re-add ABS_EXPR folding.
13137
13138 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
13139
13140         PR target/19019
13141         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
13142         {TARGET,MASK}_XL_COMPAT.
13143         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
13144         MASK_XL_COMPAT.
13145         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
13146         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
13147         TARGET_XL_COMPAT.
13148         (rs6000_arg_partial_bytes): Same.
13149         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
13150         and XL compatibility enabled.
13151         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
13152         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
13153         test to final condition.
13154         (cmptf_internal2): New.
13155         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
13156         xl-compat.  Add TFmode information to description.
13157
13158 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
13159
13160         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
13161
13162 2005-02-13  Jason Merrill  <jason@redhat.com>
13163
13164         PR c++/16405
13165         * fold-const.c (fold_indirect_ref_1): Split out from...
13166         (build_fold_indirect_ref): Here.
13167         (fold_indirect_ref): New fn.
13168         * tree.h: Declare it.
13169         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
13170         (gimplify_modify_expr_rhs): Likewise.
13171         (gimplify_expr): Likewise.
13172
13173 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
13174
13175         PR tree-optimization/14303
13176         PR tree-optimization/15784
13177         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
13178         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
13179         ABS_EXPR<x> != 0 to x != 0.
13180
13181 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
13182
13183         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
13184         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
13185         spelling conventions.
13186
13187         * passes.c (rest_of_handle_gcse): Don't run cse_main and
13188         delete_trivially_dead_insns too many times.
13189
13190         * passes.c (rest_of_handle_gcse): Remove dead assignments to
13191         tem and tem2.
13192
13193 2005-02-12  Ira Rosen  <irar@il.ibm.com>
13194
13195         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
13196         (vect_is_simple_iv_evolution): Remove redundant parameter
13197         and step check.
13198         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
13199         without last parameter.
13200         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
13201         Return pointer step. Call vect_is_simple_iv_evolution without
13202         last parameter. Check only that the step is multiple of size
13203         type. Remove stmt_vinfo updates.
13204         (vect_get_memtag_and_dr): Remove.
13205         (vect_get_memtag): New function.
13206         (vect_address_analysis): New function.
13207         (vect_object_analysis): New function.
13208         (vect_analyze_data_refs): Call vect_object_analysis and
13209         vect_get_memtag. Update stmt_vinfo fields.
13210
13211 2005-02-12  Ira Rosen  <irar@il.ibm.com>
13212
13213         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
13214         exist and are objects. Remove checks for pointer.
13215         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
13216         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
13217         (vect_create_data_ref_ptr): Likewise.
13218         (vect_base_addr_differ_p): New function.
13219         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
13220         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
13221         Don't set the DR_BASE_NAME field of data-ref.
13222         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
13223
13224 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
13225
13226         * optabs.h (enum optab_index): Add new OTI_ldexp.
13227         (ldexp_optab): Define corresponding macro.
13228         * optabs.c (init_optabs): Initialize ldexp_optab.
13229         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
13230         patterns.
13231         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
13232         using ldexp_optab.
13233         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
13234         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
13235
13236         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
13237         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
13238         intrinsics.
13239
13240 2005-02-12  Ira Rosen  <irar@il.ibm.com>
13241
13242         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
13243         to base_address.
13244         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
13245         stmt_vec_info.
13246         (vect_get_base_and_offset): Always return an address.
13247         (vect_create_addr_base_for_vector_ref): Remove treatment for
13248         different data reference types.
13249         (vect_compute_data_ref_alignment): Rename base to base_address in
13250         stmt_vec_info. Get the object in order to force its alignment.
13251         (vect_get_memtag_and_dr): Rename base to base_address in
13252         stmt_vec_info. Extract the object for memtag analysis.
13253
13254 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
13255
13256         PR regression/19898.
13257         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
13258         changes cc_status, use apply modified_in_p to part of cc_status
13259         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
13260         body.
13261
13262 2005-02-11  Richard Henderson  <rth@redhat.com>
13263
13264         * tree-complex.c (expand_complex_libcall): New.
13265         (expand_complex_multiplication): Use it for c99 compliance.
13266         (expand_complex_division): Likewise.
13267         * fold-const.c (fold_complex_add, fold_complex_mult): New.
13268         (fold): Call them.
13269         * builtins.c (built_in_names): Remove const.
13270         * tree.c (build_common_builtin_nodes): Build complex arithmetic
13271         builtins.
13272         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
13273         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
13274         (built_in_names): Remove const.
13275         * c-common.c (c_common_type_for_mode): Handle complex modes.
13276         * flags.h, toplev.c (flag_complex_method): Rename from
13277         flag_complex_divide_method.
13278         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
13279         __mulsc3, __muldc3, __mulxc3, __multc3): New.
13280         * libgcc2.h: Declare them.
13281         * libgcc-std.ver: Export them.
13282         * mklibgcc.in (lib2funcs): Build them.
13283
13284 2005-02-11  Steven Bosscher  <stevenb@suse.de>
13285
13286         PR tree-optimization/19876
13287         Partially revert my change from 2005-01-14
13288         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
13289         (compute_antic): ...and remove the loop here.
13290
13291 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
13292
13293         PR middle-end/19858
13294         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
13295         is number of inner's bits, avoid creating a BIT_FIELD_REF.
13296
13297         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
13298         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
13299
13300 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
13301
13302         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
13303         offsets for the big-endian 32-bit case.
13304
13305 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
13306
13307         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
13308
13309 2005-02-11  Dale Johannesen  <dalej@apple.com>
13310
13311         * cselib.c (cselib_process_insn):  Clear out regs where
13312         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
13313         * reload.c (find_equiv_reg): Ditto.
13314
13315 2005-02-11  Ian Lance Taylor  <ian@airs.com>
13316
13317         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
13318         with no elements.
13319
13320         * tree.c (build_function_type_list): Work correctly if there are
13321         no arguments.
13322
13323 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13324
13325         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
13326         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
13327         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
13328         TARGET_ZARCH instead of TARGET_64BIT.
13329
13330 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
13331
13332         * config/rs6000/t-rtems:
13333         (MULTILIB_OPTIONS): Remove mcpu=602.
13334         (MUTLILIB_DIRNAMES): Remove m602.
13335         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
13336         Let mcpu=602 match mcpu=603.
13337         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
13338
13339 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13340
13341         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
13342         signal trampolines.
13343
13344 2005-02-10  David Daney  <ddaney@avtrex.com>
13345
13346         * config/alpha/linux-unwind.h: Add exception clause to copyright.
13347         * config/i386/linux-unwind.h: Likewise.
13348         * config/ia64/linux-unwind.h: Likewise.
13349         * config/mips/linux-unwind.h: Likewise.
13350         * config/pa/linux-unwind.h: Likewise.
13351         * config/rs6000/linux-unwind.h: Likewise.
13352         * config/s390/linux-unwind.h: Likewise.
13353         * config/sh/linux-unwind.h: Likewise.
13354         * config/sparc/linux-unwind.h: Likewise.
13355
13356 2005-02-10  Steven Bosscher  <stevenb@suse.de>
13357
13358         PR tree-optimization/17549
13359         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
13360         TER to replace a DEF with its expression if the DEF and the
13361         rhs of the expression we replace into have the same root
13362         variable.
13363
13364 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
13365
13366         * config/mips/mips.md: Fix the placement of the match_scratch in the
13367         lea64 peephole2.
13368
13369 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13370
13371         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
13372         Fix comment typos.
13373
13374 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
13375
13376         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
13377         (strip_offset): Handle addresses.
13378         (add_address_candidates): Use strip_offset.
13379         (difference_cost): Reflect strip_offset change.
13380         (force_var_cost, difference_cost): Strip nops.
13381
13382 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13383
13384         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
13385
13386         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
13387         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
13388         config/cris/cris-protos.h, config/cris/cris.c: Update
13389         copyright.
13390
13391 2005-02-10  Jeff Law  <law@redhat.com>
13392
13393         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
13394         (lookup_avail_expr): Similarly.
13395
13396 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
13397
13398         * builtins.c (fold_builtin_powi): New function.
13399         (fold_builtin_1): Call it.
13400
13401 2005-02-10  Steven Bosscher  <stevenb@suse.de>
13402
13403         PR documentation/19309
13404         * doc/cpp.texi: The __GNUC__ and related predefined macros
13405         are also defined for the "standalone" cpp.
13406         Some non-GCC compilers may also define __GNUC__.
13407
13408 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
13409
13410         PR c/19342
13411         * c-typeck.c (common_type): New routine.  Old common_type renamed
13412         to...
13413         (c_common_type): ...this.
13414         (build_conditional_expr, build_binary_op): Use c_common_type instead
13415         of common_type.
13416
13417 2005-02-10  Steven Bosscher  <stevenb@suse.de>
13418
13419         * doc/md.texi: Replace @samp{length} with @code{length}.
13420
13421 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
13422
13423         PR tree-optimization/18687
13424         * tree-flow.h (find_loop_niter): Declare.
13425         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
13426         Try using scev even for loops with more than one exit.
13427         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
13428         (struct ivopts_data): Added niters field.
13429         (struct nfe_cache_elt): New.
13430         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
13431         functions.
13432         (tree_ssa_iv_optimize_init): Initialize niters cache.
13433         (determine_number_of_iterations): Removed.
13434         (find_induction_variables): Do not call determine_number_of_iterations.
13435         Access niters for single exit through niter_for_single_dom_exit.
13436         (add_iv_outer_candidates): Access niters for single exit through
13437         niter_for_single_dom_exit.
13438         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
13439         number_of_iterations_cond.
13440         (iv_period): New function.
13441         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
13442         (may_replace_final_value): Take data argument.  Use
13443         niter_for_single_dom_exit.
13444         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
13445         (rewrite_use_compare): Pass data to may_eliminate_iv.
13446         (rewrite_use_outer): Pass data to may_replace_final_value.
13447         (free_loop_data): Clean up the niters cache.
13448         (tree_ssa_iv_optimize_finalize): Free the niters cache.
13449         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
13450         * tree-ssa-loop-niter.c (find_loop_niter): New function.
13451         (find_loop_niter_by_eval): Use tree_int_cst_lt.
13452         (num_ending_zeros): Moved to tree.c.
13453         * tree.h (num_ending_zeros): Declare.
13454         * tree.c (num_ending_zeros): Moved from tree.c.
13455
13456 2005-02-09  Richard Henderson  <rth@redhat.com>
13457
13458         * builtins.c (DEF_BUILTIN): Add COND argument.
13459         * tree.h (DEF_BUILTIN): Likewise.
13460         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
13461         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
13462         match.
13463         (DEF_BUILTIN_STUB): New.
13464         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
13465         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
13466         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
13467         * c-common.c (DEF_BUILTIN): Add COND argument.
13468         * tree.c (local_define_builtin): New.
13469         (build_common_builtin_nodes): New.
13470
13471 2005-02-09  Roger Sayle  <roger@eyesopen.com>
13472
13473         * fold-const.c (fold_strip_sign_ops): New function to simplify a
13474         floating point expression ignoring the sign of the result.
13475         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
13476         (fold) <MULT_EXPR>: Use it to simplify x*x.
13477         * tree.h (fold_strip_sign_ops): Prototype here.
13478         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
13479         argument.  Use fold_strip_sign_ops to simplify the first argument.
13480         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
13481         first argument when the second argument is an even integer
13482         constant, but only with -funsafe_math_optimizations.
13483         (fold_builtin_1): Update call to fold_builtin_copysign.
13484
13485 2005-02-09  Ian Lance Taylor  <ian@airs.com>
13486
13487         PR middle-end/19583
13488         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
13489         just check whether EH_FILTER_FAILURE falls through.
13490
13491 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
13492
13493         * gcc/haifa-sched.c (schedule_block): Make queued sched group
13494         insns return to ready list in the next turn.
13495
13496 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
13497
13498         PR middle-end/19402
13499         * builtins.def: New __builtin_powi[lf].
13500         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
13501         (expand_builtin_powi): New function.
13502         (expand_builtin): Dispatch to expand_builtin_powi.
13503         * libgcc2.h: Add prototypes for __builtin_powi[lf].
13504         * libgcc2.c: Add __builtin_powi[lf] implementation.
13505         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
13506         * optabs.h: Add powi_optab.
13507         * optabs.c (init_optabs): Initialize powi_optab.
13508         * doc/extend.texi: Document __builtin_powi[lf].
13509
13510 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
13511
13512         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
13513         exists.
13514
13515 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
13516
13517         PR middle-end/19854
13518         * fold-const.c (try_move_mult_to_index): Remove redundant
13519         type argument.  Create ADDR_EXPR with correct type.
13520         (fold): Update callers of try_move_mult_to_index.  Convert
13521         result to the appropriate type.
13522
13523 2005-02-09  Roger Sayle  <roger@eyesopen.com>
13524
13525         PR target/19597
13526         * config/avr/avr.c (default_rtx_costs): Delete.
13527         (avr_operand_rtx_cost): New function.
13528         (avr_rtx_costs): Completely rewrite.
13529
13530 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
13531
13532         PR target/19806
13533         * config/cris/cris.c (in_code): New variable.
13534         (cris_output_addr_const): Now a static function, a wrapper for
13535         output_addr_const.
13536         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
13537         case from old cris_output_addr_const.
13538         (cris_asm_output_label_ref): Similar for LABEL_REF.
13539         (cris_output_addr_const_extra): Similar for UNSPEC.
13540         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
13541         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
13542         * config/cris/cris-protos.h (cris_output_addr_const): Remove
13543         declaration.
13544         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
13545         (cris_asm_output_label_ref): Declare.
13546
13547 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
13548
13549         PR preprocessor/19801
13550         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
13551         filenames that changed when libcpp was moved to the toplevel.
13552
13553 2005-02-07  Roger Sayle  <roger@eyesopen.com>
13554
13555         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
13556         zero extensions of BImode operands.  Call lowpart_subreg instead
13557         of gen_lowpart_common and gen_lowpart_SUBREG.
13558
13559 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13560
13561         PR ada/19489
13562         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
13563         * configure.ac: Set cc_for_cross_gnattools.
13564         * configure: Regenerate.
13565
13566 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
13567
13568         PR target/19803
13569         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
13570
13571 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
13572
13573         PR debug/19327
13574         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
13575         of nested functions.
13576
13577 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
13578
13579         * doc/extend.texi: Document deprecated extensions allowing
13580         static floating-point members to have initializers and allowing
13581         floating-point literals in integral constant expressions.
13582
13583 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13584
13585         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
13586         config/darwin7.h, config/mips/mips.c,
13587         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
13588         Update copyright.
13589
13590         * cse.c: Update comments.
13591
13592 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
13593
13594         PR middle-end/19775
13595         * builtins.c (fold_builtin_sqrt): Transform
13596         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
13597         pow(x,y*0.5).
13598
13599 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
13600             Dorit Naishlos  <dorit@il.ibm.com>
13601
13602         * doc/invoke.texi (ftree-vectorizer-verbose): New.
13603         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
13604         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
13605         was added.
13606         * tree.h (vect_set_verbosity_level): New extern function declaration
13607         added.
13608         * tree-vectorizer.h (verbosity_levels): New enum type.
13609         * tree-vectorizer.c (vect_debug_stats): Function removed.
13610         (vect_debug_details): Likewise.
13611         (vect_verbosity_level): Global variable was defined and initialized.
13612         (vect_dump): Global variable definition.
13613         (vect_print_dump_info): New function.
13614         (vect_set_dump_settings): New function.
13615         (vect_set_verbosity_level): New function.
13616         (vectorize_loops): Add call to vect_set_dump_settings.
13617
13618         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
13619         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
13620         (slpeel_tree_peel_loop_to_edge): Likewise.
13621
13622         (vect_analyze_offset_expr): Call to vect_print_dump_info with
13623         appropriate verbosity level instead of call to vect_debug_details
13624         or vect_debug_stats.
13625         (vect_get_base_and_offset):
13626         (vect_create_addr_base_for_vector_ref):
13627         (get_vectype_for_scalar_type):
13628         (vect_create_data_ref_ptr):
13629         (vect_init_vector):
13630         (vect_get_vec_def_for_operand):
13631         (vect_finish_stmt_generation):
13632         (vectorizable_assignment):
13633         (vectorizable_operation):
13634         (vectorizable_store):
13635         (vectorizable_load):
13636         (vect_transform_stmt):
13637         (vect_update_ivs_after_vectorizer):
13638         (vect_do_peeling_for_loop_bound):
13639         (vect_update_inits_of_drs):
13640         (vect_do_peeling_for_alignment):
13641         (vect_transform_loop):
13642         (vect_is_simple_use):
13643         (vect_analyze_operations):
13644         (vect_is_simple_iv_evolution):
13645         (vect_analyze_scalar_cycles):
13646         (vect_analyze_data_ref_dependence):
13647         (vect_analyze_data_ref_dependences):
13648         (vect_compute_data_ref_alignment):
13649         (vect_enhance_data_refs_alignment):
13650         (vect_analyze_data_refs_alignment):
13651         (vect_analyze_data_ref_access):
13652         (vect_analyze_data_ref_accesses):
13653         (vect_analyze_pointer_ref_access):
13654         (vect_get_memtag_and_dr):
13655         (vect_analyze_data_refs):
13656         (vect_mark_relevant):
13657         (vect_stmt_relevant_p):
13658         (vect_mark_stmts_to_be_vectorized):
13659         (vect_can_advance_ivs_p):
13660         (vect_get_loop_niters):
13661         (vect_analyze_loop_form):
13662         (vect_analyze_loop):
13663         (vectorize_loops): Likewise.
13664
13665         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
13666         (vect_update_inits_of_drs):
13667         (vect_do_peeling_for_alignment):
13668         (vect_transform_loop):
13669         (vect_analyze_operations):
13670         (vect_analyze_scalar_cycles):
13671         (vect_analyze_data_ref_dependences):
13672         (vect_analyze_data_refs_alignment):
13673         (vect_analyze_data_ref_accesses):
13674         (vect_analyze_data_refs):
13675         (vect_mark_stmts_to_be_vectorized):
13676         (vect_get_loop_niters):
13677         (vect_analyze_loop_form):
13678         (vect_analyze_loop): Likewise.
13679         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
13680
13681 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
13682
13683         PR bootstrap/19796
13684         Revert:
13685         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
13686         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
13687         either -ffast-math or -funsafe-math-optimizations is in use.
13688
13689         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
13690         * config/mips/irix-csr.c: New file.
13691         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
13692         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
13693         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
13694         executables.
13695
13696 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
13697
13698         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
13699         redundant, incorrect definitions.
13700
13701         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
13702         expand.
13703         ("*tls_indirect_call"): New, reference hard regs directly.
13704         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
13705
13706 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
13707
13708         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
13709         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
13710
13711 2005-02-06  Roger Sayle  <roger@eyesopen.com>
13712
13713         PR rtl-optimization/19800
13714         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
13715         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
13716         gen_lowpart.
13717
13718 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
13719
13720         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
13721
13722 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
13723
13724         PR other/17135
13725         * doc/invoke.texi: Correct documentation of -freorder-functions.
13726
13727 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
13728
13729         PR other/14402
13730         * doc/invoke.texi: Don't mention gccbug.
13731
13732 2005-02-06  Roger Sayle  <roger@eyesopen.com>
13733             Andrew Pinski  <pinskia@physics.uc.edu>
13734             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
13735
13736         * simplify-rtx.c (simplify_relational_operation_1): Simplify
13737         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
13738         into just (zero_extract:SI FOO (const_int 1) BAR).
13739
13740 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
13741
13742         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
13743         macro locally.  Don't give last revision date.  Use GCC version
13744         number from gcc-common.texi.
13745         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
13746         revision date.  Use GCC version number from gcc-common.texi.
13747         Describe being a library as current state rather than as 3.x
13748         history.
13749         * doc/gcc.texi: Remove last update date.
13750         * doc/gccint.texi: Likewise.  Update copyright dates.
13751         * doc/install.texi: Update copyright dates.
13752
13753 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
13754
13755         PR other/7549
13756         * doc/invoke.texi: Mention for each option included in -Wall that
13757         it is included in -Wall.
13758         * doc/gcc.texi: Update copyright and last modification date.
13759
13760 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
13761
13762         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
13763         unnecessary cast to original induction variable increments.
13764
13765 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
13766
13767         PR tree-optimization/18219
13768         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
13769         in distributed form.
13770
13771 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
13772
13773         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
13774         Set bitpos and offset later in the function.  Do nothing if the
13775         target is a register and if the bitfield lies completely outside
13776         that register.
13777         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
13778         here.  Return an uninitialised register if the source value is stored
13779         in a register and the bitfield lies completely outside that register.
13780
13781 2005-02-06  Steven Bosscher  <stevenb@suse.de>
13782
13783         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
13784         not SET_DEST.
13785
13786 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
13787
13788         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
13789
13790 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
13791
13792         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
13793         * config/darwin8.h: New.
13794         * config/darwin7.h: Update comment.
13795
13796 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
13797             Dorit Naishlos  <dorit@il.ibm.com>
13798
13799         * tree-vectorizer.h (LOC): New type.
13800         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
13801         (loop_line_number): New field in struct _loop_vec_info.
13802         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
13803
13804         * tree-vectorizer.c (input.h): Included.
13805         (find_loop_location): New function.
13806         (vect_debug_stats): Argument changed from loop to LOC. Computation of
13807         loop line number removed.
13808         (vect_debug_details): Likewise.
13809         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
13810
13811         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
13812         call to vect_debug_details/stats changed from loop to loop_loc.
13813         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
13814         (slpeel_tree_peel_loop_to_edge): Likewise.
13815
13816         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
13817         changed from NULL to UNKNOWN_LOC.
13818         (vect_get_base_and_offset):
13819         (vect_create_addr_base_for_vector_ref):
13820         (get_vectype_for_scalar_type):
13821         (vect_create_data_ref_ptr):
13822         (vect_init_vector):
13823         (vect_get_vec_def_for_operand):
13824         (vect_finish_stmt_generation):
13825         (vectorizable_assignment):
13826         (vectorizable_operation):
13827         (vectorizable_store):
13828         (vectorizable_load):
13829         (vect_transform_stmt):
13830         (vect_update_ivs_after_vectorizer):
13831         (vect_do_peeling_for_loop_bound):
13832         (vect_do_peeling_for_alignment):
13833         (vect_transform_loop):
13834         (vect_is_simple_use):
13835         (vect_analyze_operations):
13836         (vect_is_simple_iv_evolution):
13837         (vect_analyze_scalar_cycles):
13838         (vect_analyze_data_ref_dependences):
13839         (vect_compute_data_ref_alignment):
13840         (vect_enhance_data_refs_alignment):
13841         (vect_analyze_data_ref_access):
13842         (vect_analyze_data_ref_accesses):
13843         (vect_analyze_pointer_ref_access):
13844         (vect_get_memtag_and_dr):
13845         (vect_analyze_data_refs):
13846         (vect_mark_relevant):
13847         (vect_stmt_relevant_p):
13848         (vect_mark_stmts_to_be_vectorized):
13849         (vect_can_advance_ivs_p):
13850         (vect_get_loop_niters):
13851         (vect_analyze_loop):
13852         (vectorize_loops): Likewise.
13853
13854         (vectorizable_load): Argument in call to vect_debug_details/stats
13855         changed from loop to LOOP_LOC (loop_vinfo).
13856         (vect_transform_loop):
13857         (vect_analyze_operations):
13858         (vect_analyze_scalar_cycles):
13859         (vect_analyze_data_ref_dependence):
13860         (vect_enhance_data_refs_alignment):
13861         (vect_analyze_data_ref_accesses):
13862         (vect_analyze_pointer_ref_access):
13863         (vect_analyze_data_refs):
13864         (vect_analyze_loop): Likewise.
13865
13866         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
13867         changed from loop to loop_loc.
13868
13869         (vect_enhance_data_refs_alignment): Removed unused variable loop.
13870
13871 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
13872             Dorit Naishlos  <dorit@il.ibm.com>
13873
13874         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
13875         declaration added.
13876         (vect_analyze_data_ref_dependences): Likewise.
13877
13878         (vect_is_simple_use): Argument changed from loop structure to
13879         loop_vect_info structure.
13880         (vect_can_advance_ivs_p): Likewise.
13881         (vect_create_index_for_vector_ref): Likewise.
13882         (vect_update_ivs_after_vectorizer): Likewise.
13883         (new_stmt_vec_info): Likewise.
13884
13885         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
13886         changed from loop to loop_vinfo.
13887         (vect_create_data_ref_ptr): First argument in call to
13888         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
13889         (vectorizable_assignment): Second argument in call to vect_is_simple_use
13890         was changed from loop to loop_vinfo.
13891         (vectorizable_operation): Likewise.
13892         (vectorizable_store): Likewise.
13893         (vect_mark_stmts_to_be_vectorized): Likewise.
13894         (vect_do_peeling_for_loop_bound): First argument in call to
13895         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
13896         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
13897         was changed from loop to loop_vinfo.
13898         (vect_analyze_data_ref_dependences): Third argument in call to
13899         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
13900
13901         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
13902         (vect_create_data_ref_ptr): Likewise.
13903         (vect_init_vector): Likewise.
13904         (vect_get_vec_def_for_operand): Likewise.
13905         (vectorizable_assignment): Likewise.
13906         (vectorizable_operation): Likewise.
13907         (vectorizable_store): Likewise.
13908         (vectorizable_load): Likewise.
13909         (vect_update_ivs_after_vectorizer): Likewise.
13910         (vect_is_simple_use): Likewise.
13911         (vect_analyze_data_ref_dependence): Likewise.
13912         (vect_analyze_pointer_ref_access): Likewise.
13913         (vect_can_advance_ivs_p): Likewise.
13914
13915         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
13916         before _stmt_vec_info.
13917         (_stmt_vec_info): Loop field replaced by loop_vec_info.
13918         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
13919         (new_stmt_vec_info): Argument changed from loop structure to
13920         loop_vect_info structure
13921
13922         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
13923         (vect_analyze_offset_expr): Avoid 80 columns overflow.
13924         (vect_create_addr_base_for_vector_ref): Likewise.
13925         (vect_analyze_pointer_ref_access): Likewise.
13926
13927 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
13928
13929         PR tree-opt/19768
13930         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
13931         phi flag if the phi is abnormal.
13932
13933 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
13934
13935         PR tree-opt/19736
13936         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
13937         information for the new statement.
13938
13939 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
13940
13941         PR driver/19117
13942         * gcc.c (main): Include the target in -v output.
13943
13944 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
13945
13946         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
13947         Do not drop the extend if we'd have to add a paradoxical subreg
13948         later.  Include optabs.h and insn-codes.h.
13949         * Makefile.in (combine.o): Depend on $(OPTABS_H).
13950
13951 2005-02-02  Roger Sayle  <roger@eyesopen.com>
13952
13953         PR middle-end/19405
13954         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
13955         * fold-const.c (const_binop): Avoid constant folding floating
13956         point operations in modes that use composite representations.
13957         * simplify-rtx.c (simplify_binary_operation): Likewise.
13958
13959 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
13960
13961         * config/rs6000/altivec.md (altivec_dst): Make the first operand
13962         a REG, not a MEM.
13963         (altivec_dstt): Likewise.
13964         (altivec_dstst): Likewise.
13965         (altivec_dststt): Likewise.
13966         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
13967         of first operand.
13968
13969 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
13970
13971         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
13972         EXPR_LOCUS from orig_cond to the new cond_stmt.
13973         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
13974         the new vec_stmt.
13975
13976 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
13977
13978         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
13979         standard_iv_increment_position. Remove call to bsi_next
13980         (no need to bump the iterator anymore).
13981         (vect_create_index_for_vector_ref): Call
13982         standard_iv_increment_position. Remove second function argument.
13983         (vect_finish_stmt_generation): Remove call to bsi_next
13984         (no need to bump the iterator anymore).
13985         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
13986         to vect_create_index_for_vector_ref.
13987
13988 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
13989
13990         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
13991         phis are used out of the loop.
13992
13993 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
13994
13995         PR c/17807
13996         * c-decl.c (undef_nested_function): New variable.
13997         (pop_scope): Diagnose undefined nested functions.
13998         (finish_function): Don't attempt cgraph processing or genericizing
13999         if current top-level function contained an undefined nested
14000         function.  Reset undef_nested_function at the end of a top-level
14001         function.
14002
14003 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
14004
14005         * tree.c (build_int_cst_type): Take sign of the value into account
14006         when deciding whether sign extend the value.
14007
14008 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
14009
14010         PR c/18502
14011         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
14012         (cpp_options, cc1_options): Change %{std*&ansi} to
14013         %{std*&ansi&trigraphs}.
14014
14015 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14016
14017         * cse.c: Update comments.
14018
14019 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
14020
14021         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
14022         arguments go on the stack.  Do not put complex doubles in odd/even
14023         pairs.
14024
14025 2005-02-02  Steven Bosscher  <stevenb@suse.de>
14026
14027         * doc/invoke.texi: Update the options enabled at -O1, -O2,
14028         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
14029         -ftree-pre, and -fthread-jumps.
14030
14031 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
14032
14033         PR tree-optimization/19578
14034         * tree-flow.h (modified_noreturn_calls): Declare.
14035         (noreturn_call_p): Declare.
14036         * tree-flow-inline.h (noreturn_call_p): New function.
14037         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
14038         * tree-cfg.c (modified_noreturn_calls): New variable.
14039         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
14040         that contain a mid-block noreturn call.
14041         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
14042
14043 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14044
14045         * df.c (df_def_record_1, df_uses_record): Don't use
14046         DF_FOR_REGALLOC.
14047         * df.h (DF_FOR_REGALLOC): Remove.
14048
14049 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
14050
14051         PR c/19435
14052         * c-typeck.c (really_start_incremental_init): Reset
14053         constructor_max_index for arrays of incomplete type.
14054
14055 2005-02-02  Jeff Law  <law@redhat.com>
14056
14057         * gcse.c (struct reg_set): Store the block index where the register
14058         was set rather than the setting insn.
14059         (record_one_set, compute_transp): Corresponding changes.
14060         (pre_insert_copy_insn): Do not call replace_one_set.
14061         (replace_one_set): Remove.
14062
14063 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
14064
14065         PR other/15514
14066         * doc/gcov.texi: Fix typo.
14067
14068 2005-02-01  Richard Henderson  <rth@redhat.com
14069
14070         PR target/19680
14071         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
14072         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
14073         type to bool.
14074         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
14075         * config/i386/i386-protos.h: Update.
14076
14077 2005-02-01  Steven Bosscher  <stevenb@suse.de>
14078
14079         PR tree-optimization/19217
14080         * tree-cfg.c (verify_expr): Use the data field to see if TP was
14081         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
14082         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
14083         that it is walking a PHI node.
14084
14085 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
14086
14087         * doc/extend.texi (Nested Functions): Update.
14088
14089 2005-02-01  Richard Henderson  <rth@redhat.com>
14090
14091         PR 19696
14092         * optabs.c (expand_copysign_absneg): Export.
14093         * optabs.h (expand_copysign_absneg): Declare.
14094         * config/rs6000/rs6000.md (copysigntf3): New.
14095
14096 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
14097
14098         PR tree-optimization/19633
14099         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
14100         * tree-ssa-alias.c (init_alias_info): Initialize.
14101         (merge_pointed_to_info): Set.
14102         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
14103         (dump_points_to_info_for): Show value of pt_null.
14104         (struct count_ptr_d): Declare.
14105         (find_ptr_dereference): Remove.
14106         (ptr_is_dereferenced_by): Remove.
14107         (count_ptr_derefs): New local function.
14108         (count_uses_and_derefs): New local function.
14109         (compute_points_to_and_addr_escape): Call it.  If the number
14110         of dereferences is greater than zero, mark the pointer as
14111         dereferenced.  If there are fewer dereferences than uses of
14112         the pointer, the pointer's value escapes.
14113
14114 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
14115
14116         PR tree-optimization/19670
14117         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
14118         here...
14119         (verify_use): ... set it here, instead.
14120
14121 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
14122
14123         * doc/sourcebuild.texi (Test directives): Fix formatting.
14124
14125         * doc/sourcebuild.texi (Test directives): Describe selector
14126         expressions.
14127
14128 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
14129
14130         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
14131         specific 64-bit CPUs.
14132
14133 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
14134
14135         PR target/16201
14136         * arm.c (arm_eliminable_register): New function.
14137         (adjacent_mem_locations): Don't allow eliminable registers.  Use
14138         HOST_WIDE_INT for address offsets.
14139         * arm-protos.h (arm_eliminable_register): Add prototype.
14140
14141 2005-02-01  Steven Bosscher  <stevenb@suse.de>
14142
14143         PR optimization/15242
14144         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
14145         * basic-block.h (duplicate_computed_gotos): Add prototype.
14146         * bb-reorder.c (duplicate_computed_gotos): New function to
14147         duplicate sufficiently small blocks ending in a computed jump.
14148         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
14149         if not optimizing for size.
14150         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
14151         never do tail merging for blocks ending in a computed jump.
14152         * doc/invoke.texi: Document the max-goto-duplication-insns param.
14153
14154 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14155
14156         Patch from Richard Sandiford <rsandifo@redhat.com>
14157         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
14158         from inheriting a subreg equivalence with a non-spill register.
14159
14160         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
14161
14162 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
14163
14164         * config/frv/frv.c (movcc_fp_destination_operand): New.
14165         (gpr_or_memory_operand): Fix typo in comment.
14166         (gpr_or_memory_operand_with_scratch): New.
14167         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
14168         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
14169         movcc_fp_destination_operand.
14170         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
14171         Legitimize memory addresses using a scratch register.
14172
14173 2005-01-31  Jeff Law  <law@redhat.com>
14174
14175         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
14176         bitmap a sparse bitmap instead of a simple bitmap.
14177         (mark_def_sites_initialize_block):  Corresponding changes.
14178         (ssa_mark_def_sites_initialize_block): Likewise.
14179         (ssa_mark_phi_uses): Likewise.
14180         (mark_def_site, ssa_mark_def_sites): Likewise.
14181         (mark_def_site_blocks): Likewise.
14182         (rewrite_ssa_into_ssa): Likewise.
14183
14184         * tree-ssa-dom.c (record_cond): Pass correct variable type
14185         for last argument to htab_find_slot_with_hash.
14186
14187         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
14188         effects when optimizing 0 % X.  Do not try to optimize X % 0.
14189
14190 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
14191
14192         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
14193         1_mmalua.
14194
14195 2005-02-01  Eric Christopher  <echristo@redhat.com>
14196
14197         * config/mips/mips.c (override_options): Warn if -mint64
14198         is used.
14199         * doc/invoke.texi (MIPS Options): Document that -mint64 is
14200         deprecated.
14201
14202 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14203
14204         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
14205         timestamp.
14206         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
14207         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
14208         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
14209         (cached_regno): Initialize to INVALID_REGNUM.
14210         (cse_reg_info_table_size,
14211         cse_reg_info_table_first_uninitialized,
14212         cse_reg_info_timestamp): New.
14213         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
14214         get_cse_reg_info.
14215         (init_cse_reg_info, get_cse_reg_info_1): New.
14216         (get_cse_reg_info): Cache the last look-up.
14217         (new_basic_block): Update the code to clear mappings from
14218         registers to cse_reg_info entries.
14219         (cse_main): Call init_cse_reg_info.
14220
14221         * cse.c (get_cse_reg_info): Update a comment.
14222
14223 2005-01-31  Steven Bosscher  <stevenb@suse.de>
14224
14225         PR c/19333
14226         * c-decl.c (start_decl): Do not warn about arrays of elements with
14227         an incomplete type here.
14228         (grokdeclarator): Do it here by making a pedwarn an error.
14229         * c-typeck.c (push_init_level): If there were previous errors with
14230         the constructor type, do not warn about braces for initializers.
14231         (process_init_element): Likewise for excess initializer elements.
14232
14233 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14234
14235         * cse.c (delete_trivially_dead_insn): Don't iterate.
14236
14237 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
14238
14239         * config/rs6000/rs6000.md (copysignsf3): New expand.
14240         (copysigndf3): Likewise.
14241
14242 2005-01-31  Steven Bosscher  <stevenb@suse.de>
14243
14244         * recog.c (constrain_operands): Only look for earlyclobber operand
14245         conflicts if an '&' constraint was seen.
14246
14247 2005-01-31  Marc Espie <espie@openbsd.org>
14248
14249         * config.gcc: Don't include embedded systems fragment, switches default
14250         debugging format to ELF.
14251         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
14252         longer pick it up there.
14253
14254 2005-01-31  Dale Johannesen  <dalej@apple.com>
14255
14256         * doc/extend.texi (nested functions): Fix linkage description.
14257         Clarify that static is not allowed.
14258
14259 2005-01-31  Dale Johannesen  <dalej@apple.com>
14260
14261         * config/rs6000/darwin.md (movsf_low_di):  Make work.
14262         (movdf_low_di):  Make work.
14263
14264 2005-01-31  Dale Johannesen  <dalej@apple.com>
14265
14266         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
14267         Make work for 64 bit.
14268
14269 2005-01-31  Roger Sayle  <roger@eyesopen.com>
14270             Dale Johannesen  <dalej@apple.com>
14271
14272         PR middle-end/19650
14273         * fold-const.c (fold_binary_op_with_conditional_arg):
14274         Make types match original operands, before STRIP_NOPS.
14275
14276 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
14277
14278         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
14279         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
14280         (struct gcc_sigcontext): Delete.  Merge contents to..
14281         (struct gcc_ucontext): ..here.
14282         (get_sigcontext): Delete.
14283         (get_regs): New function, like get_sigcontext but return regs ptr.
14284         64-bit version finds regs from r1 to support vdso.
14285         (ppc_linux_aux_vector): New function.
14286         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
14287         and vector regs.
14288
14289 2005-01-31  Ira Rosen  <irar@il.ibm.com>
14290
14291         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
14292         sizetype.
14293         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
14294         redundant fold. Fix misalignment for MINUS_EXPR.
14295         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
14296         (vect_analyze_pointer_ref_access): Likewise.
14297         (vect_get_memtag_and_dr): Likewise.
14298
14299 2005-01-31  Richard Henderson  <rth@redhat.com>
14300
14301         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
14302         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
14303         absnegdf2_i387, absnegxf2_i387): Likewise.
14304
14305 2005-01-31  Richard Henderson  <rth@redhat.com>
14306
14307         PR 19696
14308         * optabs.c (expand_copysign_absneg): New.
14309         (expand_copysign_bit): Split out from ...
14310         (expand_copysign): ... here.  Use expand_copysign_absneg.
14311
14312 2005-01-30  Roger Sayle  <roger@eyesopen.com>
14313
14314         PR middle-end/19697
14315         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
14316         constant as the second operand and a register as the third.
14317
14318 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
14319
14320         PR target/19704
14321         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
14322         that dllimport'd functions do not use all call-clobbered registers
14323         to pass parameters.
14324
14325 2005-01-30  Richard Henderson  <rth@redhat.com>
14326
14327         PR 19696
14328         * optabs.c (expand_absneg_bit): Split out from expand_unop and
14329         expand_abs_nojump and generalize.  Use operand_subword and
14330         emit_no_conflict_block.  Support large modes.
14331         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
14332         back to maximum.
14333         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
14334         negation to subtraction.
14335         (expand_copysign): Check that the format has signed zeros.
14336         Use operand_subword and emit_no_conflict_block.  Support large modes.
14337
14338 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
14339
14340         Fix PR tree-optimization/19624
14341
14342         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
14343         * tree-ssa-pre.c: Add cfgloop.h.
14344         Update comment.
14345         (pre_stats): New member, constified.
14346         (inserted_exprs): New static variable.
14347         (NECESSARY): New macro.
14348         (create_expression_by_pieces): Fold the expression, and
14349         mark it as defaulting to not necessary. Also put in
14350         inserted_exprs.
14351         (fully_constant_expression): New function.
14352         (insert_into_preds_of_block): Modify to not insert phis when we
14353         are playing with induction variables.
14354         Push phis onto the inserted_exprs vector, and mark them as not
14355         necessary by default.
14356         (insert_aux): Call fully_constant_expression on eprime.
14357         If all edges produce the same value, mark it constant.
14358         (mark_operand_necessary): New function.
14359         (remove_dead_inserted_code): New function.
14360         (init_pre): Init loop optimizer to get loop info.
14361         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
14362         (execute_pre): Commit edge inserts, then remove dead code.
14363
14364 2005-01-30  Richard Henderson  <rth@redhat.com>
14365
14366         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
14367         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
14368
14369 2005-01-30  Richard Henderson  <rth@redhat.com>
14370
14371         PR target/19700
14372         * config/i386/i386.c (ix86_expand_copysign): New.
14373         (ix86_split_copysign_const): New.
14374         (ix86_split_copysign_var): Rename from ix86_split_copysign,
14375         rearrange op1/nmask operands.
14376         * config/i386/i386-protos.h: Update.
14377         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
14378         (copysigndf3): Likewise.
14379         (copysignsf3_const, copysigndf3_const): New.
14380         (copysignsf3_var): Rename from copysignsf3, split out splitter
14381         and fix split predicate for X constraint.
14382         (copysigndf3_var): Similarly.
14383
14384 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14385
14386         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
14387         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
14388         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
14389
14390 2005-01-29  Richard Henderson  <rth@redhat.com>
14391
14392         PR target/19690
14393         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
14394         of # and * in constraints.
14395
14396 2005-01-29  Richard Henderson  <rth@redhat.com>
14397
14398         PR middle-end/19689
14399         * expr.c (store_field): Don't strip sub-mode cast when the input
14400         data is even smaller.
14401
14402 2005-01-29  Richard Henderson  <rth@redhat.com>
14403
14404         PR middle-end/19687
14405         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
14406         union being empty.
14407
14408 2005-01-29  Richard Henderson  <rth@redhat.com>
14409
14410         * combine.c (make_field_assignment): Fix argument order
14411         to gen_int_mode.
14412
14413 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
14414
14415         PR tree-optimization/15791
14416         * fold-const.c (extract_array_ref): New function.
14417         (fold): Fold comparisons between &a[i] and &a[j] or
14418         semantically equivalent trees.
14419
14420 2005-01-29  Jeff Law  <law@redhat.com>
14421
14422         * gcse.c (insert_expr_in_table): Revamp handling of available
14423         and anticipatable occurrence lists to avoid unnecessary list
14424         walking.
14425         (insert_set_in_table): Similarly.
14426
14427 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
14428
14429         * c-common.c (fix_string_type): Just use c_build_qualified_type to
14430         build string type.
14431         (c_build_qualified_type): Build qualified array types with
14432         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
14433         * c-decl.c (c_make_fname_decl): Build unqualified array type
14434         before qualified type.
14435         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
14436         type is qualified, not just if type itself is.  Don't apply
14437         qualifiers to array type when declarator is processed.  Apply
14438         qualifiers to field type whether or not it is an array type.
14439         Don't handle array types specially for applying qualifiers to
14440         variables.
14441         * c-typeck.c (composite_type): Build unqualified element type and
14442         array type when forming composite of array types.
14443         (common_pointer_type, comptypes, comp_target_types,
14444         type_lists_compatible_p, build_indirect_ref, build_array_ref,
14445         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
14446         types.
14447         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
14448         (args2) in variables a1 and a2.
14449
14450 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14451
14452         * cse.c (n_elements_made, max_elements_made): Remove.
14453         (insert): Don't touch n_elements_made.
14454         (cse_main): Don't touch n_elements_made or max_elements_made.
14455
14456 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
14457
14458         PR target/15384
14459         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
14460         configuration part of dp-bit.c to be lost.
14461
14462 2005-01-28  Roger Sayle  <roger@eyesopen.com>
14463
14464         * expmed.c (expand_mult_highpart_optab): When attempting to use
14465         a non-widening multiplication in a wider mode, the operands need
14466         to be converted (zero or sign extended) to that mode.
14467
14468 2005-01-28  Ian Lance Taylor  <ian@airs.com>
14469
14470         PR middle-end/16558
14471         PR middle-end/19583
14472         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
14473         through if both operands fall through.
14474
14475 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14476
14477         * cse.c (fold_rtx) <PC>: Don't optimize.
14478
14479 2005-01-28  Jeff Law  <law@redhat.com>
14480
14481         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
14482         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
14483
14484 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14485
14486         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
14487         cse_reg_info_used_list_end): Remove.
14488         (cse_reg_info_list, cse_reg_info_list_free): New.
14489         (get_cse_reg_info): When allocating an instance of
14490         cse_reg_info, add it to the beginning of the cse_reg_info_list
14491         list.  Remove code to maintain cse_reg_info_used_list.
14492         (new_basic_block): Reset the free list to the beginning of
14493         cse_reg_info_list.
14494
14495 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
14496
14497         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
14498         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
14499         (frv_expand_mdpackh_builtin): New function.
14500         (frv_expand_builtin): Use it to expand __MDPACKH.
14501         * doc/extend.texi (__MDPACKH): Update documentation.
14502
14503 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
14504
14505         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
14506         SSE_FLOAT_MODE_P for use_sse computation.
14507
14508 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
14509
14510         PR target/19663
14511         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
14512
14513 2005-01-27  Richard Henderson  <rth@redhat.com>
14514
14515         * builtins.c (expand_builtin_copysign): New.
14516         (expand_builtin): Call it.
14517         * genopinit.c (optabs): Add copysign_optab.
14518         * optabs.c (init_optabs): Initialize it.
14519         (expand_copysign): New.
14520         * optabs.h (OTI_copysign, copysign_optab): New.
14521         (expand_copysign): Declare.
14522
14523         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
14524         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
14525
14526         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
14527         (ix86_expand_fp_absneg_operator): ... here.
14528         (ix86_split_copysign): New.
14529         * config/i386/i386-protos.h: Update.
14530         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
14531         (copysignsf3, copysigndf3): New.
14532
14533         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
14534         (copysignsf3, ncopysignsf3): New.
14535         (copysigndf3, ncopysigndf3): New.
14536         (copysignxf3, ncopysignxf3): New.
14537         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
14538
14539 2005-01-27  Arend Bayer  <arend.bayer@web.de>
14540             Kazu Hirata  <kazu@cs.umass.edu>
14541
14542         * cse.c: (find_best_addr): Don't call copy_rtx before calling
14543         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
14544         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
14545         NULL_RTX.
14546
14547 2005-01-27  Jeff Law  <law@redhat.com>
14548
14549         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
14550         definitions of SSA_NAMEs which are not being rewritten.
14551         (rewrite_ssa_into_ssa): Only initialize the current definition
14552         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
14553         If checking is enabled, assert that SSA_NAME_AUX is clear for all
14554         SSA_NAMEs before returning.
14555
14556 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14557
14558         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
14559         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
14560         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
14561         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
14562         config/mips/iris6.h, config/sh/sh.c: Update copyright.
14563
14564 2005-01-27  Steven Bosscher  <stevenb@suse.de>
14565
14566         PR middle-end/17278
14567         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
14568         higher to -O2 and higher.  Likewise for tree PRE.
14569         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
14570         and better.
14571
14572 2005-01-27  Ian Lance Taylor  <ian@airs.com>
14573
14574         PR middle-end/19583
14575         * gimple-low.c (try_catch_may_fallthru): New static function.
14576         (block_may_fallthru): Handle TRY_CATCH_EXPR.
14577         * tree-inline.c (expand_call_inline): Don't warn about reaching
14578         the end of a non-void function being inlined if the function uses
14579         a return slot.
14580
14581 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
14582
14583         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
14584
14585         PR c/18946
14586         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
14587         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
14588         (implicitly_declare): Handle error_mark_node.
14589
14590 2005-01-27  Richard Henderson  <rth@redhat.com>
14591
14592         PR tree-opt/14329
14593         * tree.h (struct tree_decl): Add debug_expr_is_from.
14594         (DECL_DEBUG_EXPR_IS_FROM): New.
14595         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
14596         * dwarf2out.c (dwarf2out_var_location): Update to match.
14597         * tree-outof-ssa.c (create_temp): Likewise.
14598         * var-tracking.c (track_expr_p): Likewise.
14599         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
14600         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
14601         * toplev.c (default_tree_printer): Likewise.
14602
14603 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
14604
14605         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
14606         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
14607
14608 2005-01-27  Steven Bosscher  <stevenb@suse.de>
14609
14610         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
14611         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
14612         ASM_CLOBBERS): Add tree checks.
14613
14614         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
14615         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
14616         * c-common.def (SWITCH_STMT): Update to match.
14617         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
14618         macros instead of SWITCH_EXPR ones.
14619         * c-dump.c (c_dump_tree): Likewise.
14620         * c-gimplify.c (gimplify_switch_stmt): Likewise.
14621         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
14622
14623         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
14624
14625 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
14626
14627         * unwind-dw2.c (execute_stack_op): Add missing cases for
14628         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
14629
14630 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14631
14632         * config.gcc (Obsolete configurations): Remove 'dummy', add
14633         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
14634         sparc-*-openbsd*.
14635
14636 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
14637
14638         PR tree-optimization/19633
14639         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
14640         CALL_EXPRs.
14641         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
14642         are no call-clobbered variables.
14643         * tree-outof-ssa.c (check_replaceable): Return false for calls
14644         with side-effects.
14645
14646 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
14647
14648         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
14649         even for variables with NULL DECL_INITIAL.
14650
14651 2005-01-26  Stuart Hastings  <stuart@apple.com>
14652
14653         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
14654
14655 2005-01-26  Richard Henderson  <rth@redhat.com>
14656
14657         PR middle-end/18008
14658         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
14659         field's type.
14660         * expr.c (store_field): Strip conversions to odd-bit-sized types
14661         if the destination field width matches.
14662
14663 2005-01-26  Richard Henderson  <rth@redhat.com>
14664
14665         * c-decl.c, expmed.c, expr.c: Revert last change.
14666
14667 2005-01-26  Richard Henderson  <rth@redhat.com>
14668
14669         PR middle-end/18008
14670         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
14671         field's type.
14672         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
14673         if we don't need the bits above those present in the current mode.
14674         * expr.c (store_field): Strip conversions to odd-bit-sized types
14675         if the destination field width matches.
14676
14677 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
14678
14679         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
14680         either -ffast-math or -funsafe-math-optimizations is in use.
14681
14682 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14683
14684         PR target/19293
14685         PR target/19329
14686         * config/avr/avr.c (notice_update_cc): Only set condition code for
14687         ashrqi3 if shift count > 0.
14688         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
14689         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
14690         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
14691         count <= 0 as a no-op, and shift count >= width by copying zero
14692         or sign bit to all bits of the result.
14693         * config/avr/avr.md (all shifts): Add alternatives for zero shift
14694         count, with attribute "length" set to 0 and "cc" set to "none".
14695
14696 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
14697
14698         * doc/invoke.texi: Document -mTLS.
14699
14700         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
14701         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
14702         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
14703         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
14704         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
14705         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
14706         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
14707         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
14708
14709         * configure.ac: Check for a TLS capable gas.
14710
14711         * configure: Regenerate.
14712
14713 2005-01-26  Richard Henderson  <rth@redhat.com>
14714
14715         PR middle-end/18008
14716         * combine.c (make_field_assignment): Simplify store to zero_extract
14717         from a source with an overlapping mask.
14718
14719 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
14720
14721         2004-11-11  Eric Christopher  <echristo@redhat.com>
14722
14723         * config/frv/frv.md: Add fr400_integer automaton. Don't
14724         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
14725         to TYPE_MACC.
14726
14727 2005-01-26  Steven Bosscher  <stevenb@suse.de>
14728
14729         PR middle-end/16585
14730         * cfgbuild.c (make_edges): Do not clear or set
14731         current_function_has_computed_jump.
14732         * function.h (struct function): Remove the has_computed_jump field.
14733         (current_function_has_computed_jump): Do not define.
14734         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
14735         in a computed jump.  Ignore current_function_has_computed_jump.
14736
14737 2005-01-26  Richard Henderson  <rth@redhat.com>
14738
14739         PR middle-end/19515
14740         * expr.c (categorize_ctor_elements): New argument p_must_clear.
14741         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
14742         fully initialized.
14743         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
14744         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
14745         objects into static storage if they have more than one non-zero value.
14746         * tree.h (categorize_ctor_elements): Update decl.
14747
14748 2005-01-26  Steven Bosscher  <stevenb@suse.de>
14749
14750         PR middle-end/19616
14751         * tree.h (CALL_EXPR_TAILCALL): Add comment.
14752         * calls.c (check_sibcall_argument_overlap_1): Revert the change
14753         to this function from 2004-07-10.
14754         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
14755         the current function for tail call optimizations if the address
14756         of one of it its arguments is taken.
14757
14758 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14759
14760         * cse.c (fold_rtx): Call equiv_constant only when necessary.
14761
14762 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
14763
14764         * function.c (expand_function_end): If current_function_calls_alloca,
14765         emit stack restore in a place that is reached when the function falls
14766         through at the end.
14767
14768 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
14769
14770         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
14771         rule to avoid matching inappropriate suffix rule.
14772
14773 2005-01-26  Jan Hubicka  <jh@suse.cz>
14774
14775         PR tree-optimization/19241
14776         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
14777
14778 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
14779
14780         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
14781         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
14782         of doubling.
14783         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
14784         <sim*>: Always use crt1.o, regardless of N in simN.
14785         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
14786         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
14787         (CRT_CALL_STATIC_FUNCTION): Remove.
14788         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
14789         use crt1.o, regardless of N in simN.
14790         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
14791         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
14792         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
14793         case isystem setting.
14794         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
14795
14796 2005-01-25  Ian Lance Taylor  <ian@airs.com>
14797
14798         * gimple-low.c (block_may_fallthru): Correct handling of
14799         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
14800
14801 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
14802
14803         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
14804         handlers to match indentation; nested under the mtune=* handler.
14805         Similar for mcpu= and march=.
14806
14807 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
14808
14809         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
14810         * config/mips/linux64.h (LIB_SPEC): Likewise.
14811         * config/mn10300/linux.h (LIB_SPEC): Likewise.
14812         * config/sh/linux.h (LIB_SPEC): Likewise.
14813
14814 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
14815
14816         * config/frv/frv.c (frv_legitimize_tls_address): New.
14817         (TARGET_HAVE_TLS): Define.
14818         (FRV_SYMBOL_REF_TLS_P): Define.
14819         (frv_override_options): Handle new register classes.
14820         (frv_legitimate_address_p): Reject tls addresses.
14821         (frv_legitimize_address): Handle TLS addresses.
14822         (gen_inlined_tls_plt): New.
14823         (gen_tlsmoff): New.
14824         (frv_legitimize_tls_address): New.
14825         (unspec_got_name): Add TLS entries.
14826         (got12_operand): Add R_FRV_TLSMOFF12 case.
14827         (frv_emit_move): Fixup TLS addresses.
14828         (frv_emit_movsi): Legitimize TLS addresses.
14829
14830         * config/frv/frv.h (MASK_BIG_TLS): New.
14831         (TARGET_BIG_TLS): New.
14832         (HAVE_AS_TLS): Define.
14833         (TARGET_SWITCHES): Add -mTLS and -mtls options.
14834         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
14835         (REG_CLASS_NAMES): Same.
14836         (REG_CLASS_CONTENTS): Same.
14837         (CONSTRAINT_LEN): New.
14838         (REG_CLASS_FROM_CONSTRAINT): New.
14839         (PREDICATE_CODES): Add symbolic_operand.
14840
14841         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
14842         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
14843         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
14844         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
14845         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
14846         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
14847         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
14848         GR9_REG, GR14_REG, LRREG.
14849         (type): Add load_or_call attribute.
14850         ("load_or_call"): New reservation.
14851         ("call_gettlsoff"): New.
14852         ("tls_indirect_call"): New.
14853         ("tls_load_gottlsoff12"): New.
14854         ("tlsoff_hilo"): New.
14855         ("tls_tlsdesc_ldd"): New.
14856         ("tls_tlsoff_ld"): New.
14857         ("tls_lddi"): New.
14858
14859         * config/frv/frv-protos.h (symbolic_operand): Protoize.
14860
14861         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
14862
14863         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
14864         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
14865         * config/frv/frv.c (TLS_BIAS): Define.
14866         (frv_output_dwarf_dtprel): New.
14867
14868 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
14869
14870         PR rtl-optimization/19579
14871         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
14872         both A and B, see if they don't clobber registers the other expr uses.
14873
14874 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
14875
14876         * real.c (do_add): Initialize signalling and canonical members.
14877
14878         * real.c (real_from_integer): Zero out destination.
14879
14880 2005-01-18  Jan Hubicka  <jh@suse.cz>
14881
14882         PR tree-optimize/19337
14883         * tree-inline.c (initialize_inlined_parameters): Copy
14884         saved_static_chain_decl only.
14885
14886 2005-01-25  Richard Henderson  <rth@redhat.com>
14887
14888         PR target/19556
14889         PR target/19584
14890         * config/i386/i386.c (x86_inter_unit_moves): Zero.
14891         (ix86_preferred_reload_class): Rewrite fp-constant section, with
14892         80387 enabled, to return a proper subclass.  Return the subset that
14893         overlaps with GENERAL_REGS for PLUS.
14894         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
14895
14896 2005-01-25  Richard Henderson  <rth@redhat.com>
14897
14898         PR middle-end/19609
14899         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
14900
14901 2005-01-25  Roger Sayle  <roger@eyesopen.com>
14902
14903         * expmed.c (choose_multiplier): Change interface to return the
14904         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
14905         (expand_divmod): Update calls to choose_multiplier.
14906
14907 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14908
14909         PR middle-end/19330
14910         * expmed.c (extract_bit_field): Use adjust_address instead of
14911         gen_lowpart when op0 is a MEM.
14912
14913 2005-01-24  Steven Bosscher  <stevenb@suse.de>
14914
14915         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
14916
14917 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
14918
14919         * config/mips/irix-csr.c: New file.
14920         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
14921         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
14922         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
14923         executables.
14924
14925 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
14926
14927         PR bootstrap/19364
14928         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
14929         sparc/elf.h, add sparc/sp-elf.h.
14930         (sparc-*-rtems*): Likewise.
14931         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
14932         tm-dwarf2.h, add sparc/sp-elf.h.
14933         (sparc86x-*-elf): Likewise.
14934         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
14935         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
14936         TARGET_OS_CPP_BUILTINS.
14937         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
14938         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
14939         Undefine it.
14940         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
14941         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
14942         (SWITCH_TAKES_ARG): Likewise.
14943         (LOCAL_LABEL_PREFIX): Likewise.
14944         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
14945         (TARGET_N_FORMAT_TYPES): Delete.
14946         (TARGET_FORMAT_TYPES): Likewise.
14947         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
14948         * config/sparc/elf.h: Delete.
14949         * config/sparc/sp-elf.h: New file.
14950
14951 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14952
14953         * tree-flow-inline.h (phi_arg_from_edge): Remove.
14954         * tree-flow.h: Remove the corresponding prototype.
14955         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
14956         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
14957
14958 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
14959
14960         PR target/17751
14961         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
14962         for AIX ABI or ELF -fPIC.
14963         (rs6000_emit_load_toc_table): Don't create toc_section here.
14964         (rs6000_xcoff_file_start): Nor here.
14965
14966 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
14967
14968         * sh.c (ra.h): Don't #include.
14969         (hard_regs_intersect_p): New function, resurrected from ra.c.
14970
14971         * sh.c: Fix 1996 Copyright.
14972
14973 2005-01-24  Richard Henderson  <rth@redhat.com>
14974             Aldy Hernandez  <aldyh@redhat.com>
14975
14976         * regrename.c (note_sets): Handle subregs.
14977
14978 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
14979
14980         PR bootstrap/18058
14981         * genconditions.c (write_header, write_conditions): Elide file if
14982         not GCC >= 3.0.1.
14983
14984 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14985
14986         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
14987         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
14988         Update copyright.
14989
14990 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
14991
14992         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
14993         expand_builtin_printf, expand_builtin_fprintf,
14994         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
14995         checking against POINTER_TYPE.
14996         (validate_arglist): Handle POINTER_TYPE code by checking
14997         POINTER_TYPE_P.
14998
14999 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
15000
15001         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
15002         init_rtlanal): New.
15003         (for_each_rtx): Call for_each_rtx_1.
15004         * rtl.h (init_rtlanal): Declare.
15005         * toplev.c (backend_init): Call init_rtlanal.
15006
15007 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
15008
15009         * flow.c (propagate_one_insn): Formatting.
15010
15011         PR middle-end/19551
15012         * flow.c (libcall_dead_p): Be more conservative if unsure.
15013         If there are any instructions between insn and call, see if they are
15014         all dead before saying the libcall is dead.
15015
15016 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
15017
15018         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
15019         operand constraint for operand 0.
15020
15021 2005-01-23  Richard Henderson  <rth@redhat.com>
15022
15023         PR 19486
15024         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
15025         edges leading to join block.
15026
15027 2005-01-23  Roger Sayle  <roger@eyesopen.com>
15028
15029         * expmed.c (expand_mult_highpart): Make static.  Change type of
15030         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
15031         (expand_divmod): Updates calls to expand_mult_highpart by using
15032         gen_int_mode to pass a CONST_INT rtx.
15033         * rtl.h (expand_mult_highpart): Remove prototype.
15034
15035 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15036
15037         * flow.c (regset_bytes, regset_size): Remove.
15038
15039         * cfganal.c: Fix a reference to Harvey's paper.
15040
15041 2005-01-23  Steven Bosscher  <stevenb@suse.de>
15042
15043         PR rtl-optimization/19464
15044         * tree-optimize.c (init_tree_optimization_passes): Add one more
15045         copyrename pass just before out-of-ssa.
15046
15047 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
15048
15049         PR bootstrap/18058
15050         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
15051         * ggc-none.c (ggc_free): Define.
15052
15053 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15054
15055         * cse.c (max_reg, max_insn_uid): Remove.
15056         (cse_main): Don't access max_reg or max_insn_uid.
15057
15058         * c-common.c (explicit_flag_signed_bitfields,
15059         lang_statement_code_p, lang_expand_function_end): Remove.
15060         * c-common.h: Remove the corresponding declarations.
15061         * c-opts.c (c_common_handle_option): Remove all write access
15062         to explicit_flag_signed_bitfields.
15063
15064         * cgraph.c (cgraph_varpool_n_nodes): Remove.
15065         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
15066         * cgraph.h: Remove the corresponding declaration.
15067
15068         * gcse.c (null_pointer_info): Remove.
15069
15070 2005-01-23  Roger Sayle  <roger@eyesopen.com>
15071             Eric Botcazou  <ebotcazou@libertysurf.fr>
15072
15073         * combine.c (simplify_logical): Only simplify logical expressions
15074         of the form ior(and(x,y),z) by the inverse distributive law if the
15075         result is cheaper than the original.
15076
15077 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15078
15079         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
15080         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
15081         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
15082         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
15083         config/freebsd-spec.h, config/arm/arm.h,
15084         config/h8300/h8300.md, config/i386/i386.md,
15085         config/i386/predicates.md, config/i386/sse.md,
15086         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
15087         config/vax/vax.md: Fix comment typos.  Follow spelling
15088         conventions.
15089
15090 2005-01-23  Steven Bosscher  <stevenb@suse.de>
15091
15092         * gengtype.c (walk_type): Produce `not equal to' compares for loop
15093         tests, instead of `less than'.
15094
15095 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
15096
15097         * function.c (assign_parm_setup_block): When creating a new stack slot
15098         for a parameter, get its alignment from the parameter's DECL_ALIGN
15099         rather than the type's TYPE_ALIGN.  Make sure that the parameter
15100         is at least word aligned.
15101
15102 2005-01-22  Roger Sayle  <roger@eyesopen.com>
15103
15104         PR middle-end/19378
15105         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
15106
15107 2005-01-22  Richard Henderson  <rth@redhat.com>
15108
15109         PR target/19506
15110         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
15111         in both compare operands.
15112         (movdfcc_1_sse_max): Likewise.
15113         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
15114         (movdfcc_1_sse): Likewise.
15115         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
15116         scratch register as needed.
15117
15118 2005-01-22  Richard Henderson  <rth@redhat.com>
15119
15120         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
15121
15122         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
15123
15124 2005-01-22  Richard Henderson  <rth@redhat.com>
15125
15126         * genopinit.c (optabs): Use smin/smax for floating point too.
15127         * doc/md.texi: Update to match.  Clarify that floating point
15128         results are undefined for +0/-0 and NaN.
15129         * doc/rtl.texi: Likewise.
15130         * rtl.def (SMIN, SMAX): Likewise
15131         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
15132
15133         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
15134         leading 's' to the name.
15135         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
15136         smaxxf3, sminxf3): Likewise.
15137         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
15138         Likewise.
15139
15140 2005-01-22  Paul Brook  <paul@codesourcery.com>
15141
15142         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
15143
15144 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
15145
15146         * config/s390/s390.c (struct processor_costs): New fields
15147         dlgr, dlr, dr, dsgfr, dsgr.
15148         (z900_cost, z990_cost): Values for new fields.
15149         (s390_rtx_costs): New cases MEM und COMPARE in switch
15150         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
15151         DIV, MOD, UDIV, UMOD.
15152
15153 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15154
15155         * config/s390/s390.md ("doloop_si64"): Reload input value directly
15156         into the register being decremented.
15157         ("doloop_si31", "doloop_di"): Likewise.
15158         ("*doloop_si_long"): Adapt pattern.
15159
15160 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15161
15162         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
15163         access registers.
15164         (CLASS_MAX_NREGS): Likewise.
15165
15166 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
15167
15168         * doc/tree-ssa.texi (Statement Operands): Add example for new
15169         must-def macro. Note deprecation of old operands interface.
15170
15171 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
15172
15173         PR tree-optimization/19484
15174         * tree-cfg.c (remove_fallthru_edge): New function.
15175         (cleanup_control_flow): Remove fallthru edges from calls that are
15176         now known not to return.
15177
15178 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
15179
15180         Fix PR tree-optimization/19038
15181         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
15182         copies with loop variant ones.
15183
15184 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15185
15186         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
15187         config/alpha/alpha-protos.h, config/alpha/alpha.h,
15188         config/alpha/alpha.md, config/alpha/predicates.md,
15189         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
15190         config/sparc/sol2.h: Update copyright.
15191
15192         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
15193         first label to see if it is a nonlocal label.
15194
15195 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
15196             Andrew Pinski  <pinskia@physics.uc.edu>
15197
15198         PR target/19491
15199         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
15200         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
15201
15202 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
15203
15204         * config/rs6000/rtems.h: Update copyright.
15205
15206 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
15207
15208         PR target/19548
15209         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
15210         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
15211         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
15212
15213 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15214
15215         PR c/18809
15216         * c-typeck.c (convert_arguments): Check for error_mark_node.
15217
15218 2005-01-21  Ian Lance Taylor  <ian@airs.com>
15219
15220         PR tree-optimization/13000
15221         * tree-inline.c: Include "tree-flow.h".
15222         (expand_call_inline): If warn_return_type, warn if non-void inline
15223         function falls through.
15224         * tree-cfg.c (execute_warn_function_return): Don't warn about
15225         control reaching end if TREE_NO_WARNING is set.  Set
15226         TREE_NO_WARNING.
15227         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
15228         has been lowered.
15229         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
15230         branch if we don't need one.
15231         * c-typeck.c: Include "tree-flow.h"
15232         (c_finish_bc_stmt): Don't add a goto if the current statement
15233         list doesn't fall through to the current point.
15234
15235 2005-01-21  Roger Sayle  <roger@eyesopen.com>
15236
15237         PR rtl-optimization/576
15238         * real.c (real_arithmetic): Change return type from void to bool
15239         to return an indication that the result may be inexact.
15240         * real.h (real_arithmeric): Update prototype.
15241         * fold-const.c (const_binop):  Don't constant fold floating
15242         point expressions when the user specifies -frounding-math and
15243         the result may depend upon the run-time rounding mode.
15244         (fold_convert_const_real_from_real): Clean-up.
15245         (fold_initializer): Ignore flag_rounding_math for initializers.
15246         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
15247         constant fold FP operations with flag_rounding_math if the
15248         result may depend upon the run-time rounding mode.
15249
15250 2005-01-21  Tom Tromey  <tromey@redhat.com>
15251
15252         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
15253
15254 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15255
15256         * tree-cfg.c: Fix comment typos.
15257
15258 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
15259
15260         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
15261         around the call to rest_of_handle_branch_target_load_optimize.
15262
15263 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
15264
15265         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
15266         (sparc64-*-openbsd*): Likewise.
15267         (sparclite-*-elf*): Include tm-dwarf2.h.
15268         (sparc86x-*-elf*): Likewise.
15269         (sparc64-*-elf*): Likewise.
15270         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
15271         (DBX_DEBUGGING_INFO): Likewise.
15272         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
15273         (PREFERRED_DEBUGGING_TYPE): Likewise.
15274         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
15275         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
15276         (PREFERRED_DEBUGGING_TYPE): Likewise.
15277         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
15278         (PREFERRED_DEBUGGING_TYPE): Likewise.
15279         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
15280
15281 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
15282
15283         PR target/18701
15284         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
15285
15286 2005-01-20  Paul Brook  <paul@codesourcery.com>
15287
15288         * doc/rtl.texi: Document value extension requirements for CONST_INT.
15289
15290 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15291
15292         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
15293         label is first in a sequence of labels.
15294
15295         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
15296
15297 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
15298             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15299
15300         * doc/sourcebuild.texi (Test Directives): New.
15301
15302 2005-01-20  Roger Sayle  <roger@eyesopen.com>
15303
15304         * real.c (real_floor): Don't leave the result uninitialized when
15305         mode is VOIDMode, but return the unrounded intermediate value.
15306         (real_ceil): Likewise.
15307
15308 2005-01-20  Paul Brook  <paul@codesourcery.com>
15309
15310         * config/arm/arm.md (insv): Use gen_int_mode.
15311
15312 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
15313
15314         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
15315         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
15316         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
15317         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
15318         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
15319
15320 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
15321
15322         Fix PR debug/19124
15323         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
15324         fbreg, so we have to assume we can't.
15325         (loc_descriptor_from_tree_1): Ditto.
15326         (containing_function_has_frame_base): New function.
15327         (add_location_or_const_value_attribute): Use it.
15328         Also try to generate a frame_base from a single element location
15329         list.
15330
15331 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15332
15333         PR tree-optimization/15349
15334         * timevar.def (TV_TREE_MERGE_PHI): New.
15335         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
15336         PHI_WANTED.
15337         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
15338         calls to tree_forwarder_block_p.
15339         (remove_forwarder_block_with_phi, merge_phi_nodes,
15340         gate_merge_phi, pass_merge_phi): New.
15341         * tree-optimize.c (init_tree_optimization_passes): Add
15342         pass_merge_phi.
15343         * tree-pass.h: Add an extern for pass_merge_phi;
15344
15345 2005-01-20  Richard Henderson  <rth@redhat.com>
15346
15347         PR target/19418
15348         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
15349         (_mm_castps_pd, _mm_castps_si128): New.
15350         (_mm_castsi128_ps, _mm_castsi128_pd): New.
15351
15352 2005-01-20  Richard Henderson  <rth@redhat.com>
15353
15354         PR target/19530
15355         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
15356         __builtin_ia32_vec_init_v2si.
15357         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
15358         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
15359         (ix86_init_mmx_sse_builtins): Create it.
15360         (ix86_expand_builtin): Expand it.
15361         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
15362         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
15363         (vec_extractv2si_0, vec_extractv2si_1): New.
15364
15365 2005-01-20  Richard Henderson  <rth@redhat.com>
15366
15367         PR target/16533
15368         * config/i386/i386.c (ix86_expand_push): New.
15369         * config/i386/mmx.md (push<MMXMODE>1): New.
15370         * config/i386/sse.md (push<SSEMODE>1): New.
15371         * config/i386/i386-protos.h: Update.
15372
15373 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15374
15375         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
15376         copyright.
15377
15378 2005-01-20  Richard Henderson  <rth@redhat.com>
15379
15380         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
15381         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
15382
15383 2005-01-19  Richard Henderson  <rth@redhat.com>
15384
15385         PR target/19350
15386         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
15387         to V4SFmode in SSE1 fallback load path.
15388
15389 2005-01-19  Richard Henderson  <rth@redhat.com>
15390
15391         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
15392         in QImode expansion to ix86_expand_vector_set.
15393         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
15394
15395 2005-01-19  Richard Henderson  <rth@redhat.com>
15396
15397         PR target/19511
15398         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
15399         subclass of the input class.
15400         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
15401         Always true for cross-SSE1 classes.  Rationalize conditionals.
15402         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
15403         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
15404         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
15405         (movdi_2): Add MMX/SSE zeros.
15406         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
15407         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
15408         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
15409         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
15410         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
15411         (zero_extendsidi2_rex64_1): Remove.
15412         (MOV0 peephole): Check GENERAL_REG_P.
15413
15414 2005-01-19  Richard Henderson  <rth@redhat.com>
15415
15416         PR target/19427
15417         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
15418         shufps elements.
15419         (ix86_expand_vector_extract): Likewise.
15420
15421 2005-01-19  Richard Henderson  <rth@redhat.com>
15422
15423         PR middle-end/19304
15424         * expr.c (emit_move_change_mode): New argument force; use
15425         simplify_gen_subreg if true.
15426         (emit_move_via_alt_mode): Merge into ...
15427         (emit_move_via_integer): ... here.
15428         (emit_move_ccmode): Use emit_move_change_mode directly.
15429
15430 2005-01-19  Richard Henderson  <rth@redhat.com>
15431
15432         PR target/19518
15433         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
15434         (alpha_preferred_reload_class): Handle CONST_VECTOR.
15435         (alpha_emit_set_const_1): Add no_output parameter; don't emit
15436         rtl if true.
15437         (alpha_emit_set_const): Likewise.  Make static.
15438         (alpha_emit_set_long_const): Make static.
15439         (alpha_extract_integer): Split out from alpha_expand_mov.
15440         (alpha_split_const_mov): Likewise.
15441         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
15442         (alpha_legitimate_constant_p): New.
15443         * config/alpha/alpha-protos.h: Update.
15444         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
15445         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
15446         * config/alpha/alpha.md (movsi): Add n alternative.
15447         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
15448         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
15449         (splitters for all of the above): Use alpha_split_const_mov.
15450         * config/alpha/predicates.md (non_add_const_operand): New.
15451         (non_zero_const_operand): New.
15452         (input_operand): Use alpha_legitimate_constant_p after reload.
15453
15454 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
15455
15456         PR tree-optimization/19038
15457         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
15458         (add_candidate): Add ivs with increment in latch only if
15459         allow_ip_end_pos_p is true.
15460         (determine_iv_cost): Use empty_block_p.
15461
15462 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
15463
15464         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
15465         (compute_dominance_frontiers): Ditto.
15466
15467 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
15468
15469         PR target/19529
15470         * config/sh/t-rtems: New.
15471         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
15472
15473 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
15474
15475         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
15476         the offset of the selected field.
15477
15478 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
15479
15480         * tree-cfg.c (remove_forwarder_block): Fix the check to
15481         prevent a nonlocal label from appearing in the middle of a
15482         basic block.
15483
15484 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
15485
15486         PR rtl-optimization/19462
15487         * reorg.c (find_end_label): Create return insn only if
15488         current_function_epilogue_delay_list is empty.
15489
15490 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
15491
15492         * doc/passes.texi: Remove paragraph mentioning new-ra.
15493
15494 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
15495
15496         PR rtl-optimization/15139
15497         * combine.c: Include params.h.
15498         (count_rtxs): New function.
15499         (record_value_for_reg): If replace_rtx would replace at least
15500         2 occurrences of REG in VALUE and TEM is really large, replace REG with
15501         (clobber (const_int 0)) instead of TEM.
15502         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
15503         * params.h (MAX_LAST_VALUE_RTL): New.
15504         * Makefile.in (combine.o): Depend on $(PARAMS_H).
15505         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
15506
15507         PR c/17297
15508         * c-typeck.c (digest_init): Only call build_vector if all constructor
15509         elements are *_CST nodes.
15510         * gimplify.c (gimplify_init_constructor): Likewise.
15511
15512         PR middle-end/19164
15513         * c-typeck.c (digest_init): Only call build_vector if inside_init
15514         is a CONSTRUCTOR.
15515
15516 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
15517
15518         * toplev.c (init_asm_output): Remove dead #ifdef.
15519
15520 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
15521
15522         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
15523
15524 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
15525
15526         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
15527         accessing DECL_FUNCTION_CODE.
15528         * dojump.c (do_jump): Likewise.
15529         * gimplify.c (gimplify_call_expr): Likewise.
15530         * predict.c (expr_expected_value): Likewise.
15531         (strip_builtin_expect): Likewise.
15532         * tree-inline.c (estimate_num_insns_1): Likewise.
15533         * tree-ssa-loop-im.c (stmt_cost): Likewise
15534         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
15535         (tree_expr_nonnegative_p): Likewise.
15536
15537 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
15538
15539         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
15540         variant of the load_pcrel_sym pattern.
15541         * config/sparc/sparc.md (P macro): Move to the top.
15542         (load_pcrel_sym): Macroize using P.
15543         (save_register_window): Likewise.
15544
15545 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
15546
15547         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
15548         ("sordered"): Same.
15549
15550 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
15551
15552         PR C/19472
15553         * c-typeck.c (build_asm_expr): Strip nops off
15554         input memory operands.
15555
15556 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
15557
15558         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
15559         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
15560         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
15561         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
15562
15563 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
15564
15565         PR target/19379
15566         * config/i386/i386.c (override_options): If the 80387 is disabled,
15567         then do not return FP values using FP registers.
15568
15569 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15570
15571         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
15572         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
15573         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
15574         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
15575         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
15576         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
15577         output.h, postreload-gcse.c, postreload.c, recog.c,
15578         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
15579         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
15580         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
15581         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
15582         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
15583         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
15584         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
15585         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
15586
15587         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
15588         config/alpha/alpha.c, config/arm/vfp.md,
15589         config/i386/emmintrin.h, config/i386/i386-modes.def,
15590         config/i386/i386-protos.h, config/i386/i386.h,
15591         config/i386/pmmintrin.h, config/i386/ppro.md,
15592         config/i386/predicates.md, config/i386/xmmintrin.h,
15593         config/i860/i860.c, config/ia64/ia64-modes.def,
15594         config/ia64/ia64-protos.h, config/ia64/ia64.h,
15595         config/ia64/ia64.md, config/ia64/itanium1.md,
15596         config/ia64/itanium2.md, config/ia64/predicates.md,
15597         config/iq2000/iq2000.h, config/mips/linux64.h,
15598         config/rs6000/aix41.h, config/rs6000/aix43.h,
15599         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
15600         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
15601         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
15602         config/sparc/linux64.h, config/sparc/litecoff.h,
15603         config/sparc/sp64-elf.h, config/sparc/sparc.c,
15604         config/sparc/sparc.h, config/sparc/sparc.md,
15605         config/sparc/sysv4-only.h: Update copyright.
15606
15607 2005-01-18  Richard Henderson  <rth@redhat.com>
15608
15609         PR target/19496
15610         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
15611
15612 2005-01-18  Marc Espie  <espie@openbsd.org>
15613         * config/i386/openbsdelf.h: Typo.
15614
15615 2005-01-18  Richard Henderson  <rth@redhat.com>
15616
15617         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
15618         special case for sse.
15619         * config/i386/predicates.md (sse_comparison_operator): Likewise.
15620
15621 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
15622
15623         * tree-inline.c (estimate_num_insns_1): Added cases for
15624         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
15625
15626 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
15627
15628         PR rtl-optimization/19296
15629         * combine.c (simplify_comparison): Rewrite the condition under
15630         which a non-paradoxical SUBREG of a PLUS can be lifted when
15631         compared against a constant.
15632
15633 2005-01-18  Andi Kleen <ak@muc.de>
15634
15635         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
15636         * c.opt (-Wpointer-sign): Add.
15637         * doc/invoke.texi: (-Wpointer-sign): Add.
15638
15639 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
15640
15641         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
15642         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
15643         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
15644         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
15645         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
15646         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
15647         for TARGET_MIX_SSE_I387.
15648         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
15649         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
15650         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
15651         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
15652         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
15653         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
15654         TARGET_MIX_SSE_I387.
15655         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
15656         from expander.
15657
15658 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
15659
15660         PR target/19424
15661         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
15662         Add movaps alternative for xmm reg->reg move.
15663
15664 2005-01-17  Jeff Law  <law@redhat.com>
15665
15666         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
15667         at the end of the main DOM loop rather than just before DOM exits.
15668
15669 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
15670
15671         PR tree-optimization/19121
15672         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
15673         adding aliases to a name tag, also add them to the pointer's
15674         type tag.
15675         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
15676         sensitive alias info at all.  Only check that the two pointers
15677         have compatible pointed-to sets.
15678         * tree-ssa.c (verify_name_tags): Verify that the alias set of
15679         a pointer's type tag is a superset of the alias set of the
15680         pointer's name tag.
15681
15682 2005-01-17  James E Wilson  <wilson@specifixinc.com>
15683
15684         PR target/19357
15685         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
15686         comment to document why.
15687
15688 2005-01-17  Richard Henderson  <rth@redhat.com>
15689
15690         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
15691         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
15692         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
15693         sse2_vmsminv2df3_finite): New.
15694         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
15695         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
15696         Force op1 into register.
15697
15698 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
15699
15700         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
15701         bubblestrap from always rebuilding build directory.
15702
15703 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
15704
15705         * config/s390/s390.md ("*clc"): Remove incorrect '='.
15706         ("*cmpmem_short"): Likewise.
15707
15708 2005-01-17  Steven Bosscher  <stevenb@suse.de>
15709
15710         * basic-block.h: Document BB_* flags.
15711         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
15712         use an sbitmap instead.
15713         * sched-rgn.c (compute_trg_info): Likewise.
15714
15715 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
15716
15717         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
15718         redundant target_cpu_default and extra_parts lines.  Use the default
15719         "from-abi" ISA.
15720         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
15721         (SUBTARGET_EXTRA_SPECS): Delete.
15722         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
15723         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
15724         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
15725         and "n32" for -mabi=n32.
15726
15727 2005-01-17  Ian Lance Taylor  <ian@airs.com>
15728
15729         PR c/5675
15730         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
15731         fold constant variables into initial values.
15732
15733 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15734
15735         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
15736
15737         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
15738         through the statements backward.
15739
15740 2005-01-17  Ian Lance Taylor  <ian@airs.com>
15741
15742         PR middle-end/13127:
15743         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
15744         a variable set to the return value of the inlined function.
15745
15746 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
15747
15748         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
15749         when modes are tieable.
15750
15751 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
15752
15753         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
15754         of pthread_create to find out if threads are enabled.
15755         * gthr-posix95.h (__gthread_active_p): Likewise.
15756
15757 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
15758
15759         * common.opt (-fnew-ra): Remove.
15760         * ra*.*: Remove.
15761         * toplev.h (flag_new_regalloc): Remove.
15762         * Makefile.in (ra*.*): Don't mention.
15763         * passes.c (rest_of_handle_new_regalloc): Remove.
15764         (rest_of_handle_combine, rest_of_compilation): Always consider
15765         flag_new_regalloc as false.
15766         * doc/invoke.texi: Don't document -fnew-ra.
15767
15768 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
15769
15770         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
15771         last parameter to reg_scan.
15772         * loop.c (loop_optimize): Likewise.
15773         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
15774         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
15775         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
15776         rest_of_handle_gcse, rest_of_handle_loop_optimize,
15777         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
15778         * regclass.c (reg_scan): Likewise, for the declaration.
15779         * rtl.h (reg_scan): Likewise, for the prototype.
15780
15781 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15782
15783         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
15784         mark_dfs_back_edges.
15785
15786 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
15787
15788         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
15789         (compute_avail): Uses don't go in tmp_gen.
15790
15791 2005-01-16  Steven Bosscher  <stevenb@suse.de>
15792
15793         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
15794         loop to look for a free slot in a page entry.
15795
15796 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15797
15798         PR target/16304
15799         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
15800         * toplev.c (compile_file): Call process_pending_assemble_output_defs
15801         just before targetm.asm_out.file_end.
15802         * tree.h (process_pending_assemble_output_defs): Declare.
15803         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
15804         New functions.
15805         (assemble_alias): Defer generation of assembly code for defines when
15806         TARGET_DEFERRED_OUTPUT_DEFS is true.
15807         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
15808         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
15809         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
15810
15811 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15812
15813         PR target/19336
15814         * pa.c (pa_scalar_mode_supported_p): New function.
15815         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
15816         * pa.h (MIN_UNITS_PER_WORD): Add comment.
15817
15818         * pa-protos.h (prefetch_operand): Delete.
15819         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
15820         * pa.c (prefetch_operand): Delete.
15821         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
15822         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
15823         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
15824         and prefetch_nocc_operand.
15825         * pa.md (prefetch): Rework to avoid reload problems handling short
15826         displacements when a cache control completer needs to be provided.
15827         (prefetch_32, prefetch_64): Delete.
15828         (prefetch_cc, prefetch_nocc): New patterns.
15829
15830 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
15831
15832         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
15833
15834 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15835
15836         PR ada/19388
15837         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
15838         exceeds maximum alignment for global common data.
15839         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
15840         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
15841
15842 2004-01-15  Roger Sayle  <roger@eyesopen.com>
15843
15844         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
15845
15846 2004-01-15  Roger Sayle  <roger@eyesopen.com>
15847
15848         * harg-reg-set.h (reg_class_names): Prototype global array.
15849         * regclass.c (reg_class_names): Declare here and initialize to
15850         REG_CLASS_NAMES.
15851         (dump_regclass): Remove local declaration of reg_class_names.
15852         (regclass): Likewise.
15853         * cfg.c (dump_flow_info): Likewise.
15854         * ra-debug.c (reg_class_names): Likewise.
15855         * regrename.c (reg_class_names): Likewise.
15856         * reload.c (reg_class_names): Likewise.
15857         * reload1.c (spill_failure): Likewise.
15858         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
15859
15860 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
15861
15862         * config/s390/s390.md ("reload_outti"): Remove predicate for
15863         output operand.  Abort if operand is not a MEM.
15864         ("reload_outdi", "reload_outdf"): Likewise.
15865
15866 2005-01-15  Marc Espie  <espie@openbsd.org>
15867
15868         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
15869         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
15870         * config/openbsd.h:  Fix C++ includes for native configurations.
15871         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
15872         Add trampoline support.
15873         * config/i386/openbsdelf.h: New.
15874
15875 2005-01-15  Marc Espie  <espie@openbsd.org>
15876
15877         * collect2.c (main): Explicitly parse -dynamic-linker option.
15878
15879 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
15880
15881         PR tree-optimization/19060
15882         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
15883         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
15884         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
15885         and handle extract_range_from_cond returning false.
15886         * fold-const.c (fold): Optimize comparisons with min/max even for
15887         width > HOST_BITS_PER_WIDE_INT.
15888
15889 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
15890
15891         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
15892         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
15893         Remove little endian multilib variants.
15894         Add mips32 multilib variant.
15895
15896 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15897
15898         * explow.c (copy_all_reg, stabilize): Remove.
15899         * expr.h: Remove the corresponding prototypes.
15900
15901         * rtlanal.c (regs_set_between_p): Remove.
15902         * rtl.h: Remove the corresponding prototype.
15903
15904 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
15905
15906         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
15907         to rs6000_nonimmediate_operand.
15908         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
15909         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
15910         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
15911         rs6000_nonimmediate_operand.
15912         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
15913         rs6000_nonimmediate_operand.
15914
15915 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
15916
15917         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
15918
15919 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15920
15921         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
15922         on e500v2.
15923         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
15924         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
15925
15926         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
15927         (rs6k_nonimmediate_operand): New.
15928         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
15929         correctly.
15930         (legitimate_lo_sum_address_p): Same.
15931         (rs6000_legitimize_address): Same.
15932         (rs6000_legitimize_reload_address): Same.
15933         (rs6000_legitimate_address): Same.
15934         (spe_build_register_parallel): Pass DF and DC modes in a DI
15935         register.
15936
15937         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
15938         to rs6k_nonimmediate_operand.
15939
15940         * config/rs6000/spe.md ("*frob_df_di"): New.
15941         ("*frob_di_df"): New.
15942         ("*frob_di_df_2"): New.
15943         ("*mov_sidf_e500_subreg0"): New.
15944         ("*mov_sidf_e500_subreg4"): New.
15945         ("*movdf_e500_double"): Change predicate to
15946         rs6k_nonimmediate_operand.
15947
15948 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15949
15950         * postreload.c (move2add_note_store): Only call
15951         trunc_int_for_mode on scalar integers.
15952
15953 2005-01-14  Steven Bosscher  <stevenb@suse.de>
15954
15955         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
15956         replace BB_VISITED uses.
15957         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
15958         (propagate_necessity): Check the bitmap instead of BB_VISITED.
15959         (tree_dce_done): Free visited_control_parents.
15960         (perform_tree_ssa_dce): Allocate and clear it.
15961         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
15962         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
15963         instead of BB_VISITED.
15964
15965 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15966
15967         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
15968         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
15969         Remove unused prototypes.
15970
15971 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15972
15973         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
15974         64-bit register usage.
15975         (spe_func_has_64bit_regs_p): Add FIXME note.
15976
15977 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
15978
15979         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
15980         flag_finite_math_only with flag_unsafe_math_optimizations.
15981
15982 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
15983
15984         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
15985         end-of-stack check.
15986         (__tpf_eh_return): Copy TPF private stack area from the module
15987         boundary stack frame.  Add check for when module addresses are
15988         equal, but no stub address is found.
15989
15990 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
15991
15992         PR target/7525
15993         * arm.h (struct machine_function): Add call_via field.
15994         (thumb_call_via_label): Declare.
15995         * arm.c (thumb_call_via_label): New variable.
15996         (thumb_call_reg_needed): New variable.
15997         (arm_output_function_epilogue): For Thumb code, output any per-function
15998         call-indirect trampolines.
15999         (thumb_call_via_reg): New function.
16000         (arm_file_end): New function.
16001         (TARGET_ASM_FILE_END): Call arm_file_end.
16002         (aof_file_end): Likewise.
16003         * arm-protos.h (thumb_call_via_reg): Declare.
16004         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
16005         thumb_call_via_reg in normal case.
16006
16007 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
16008
16009         PR middle-end/19084
16010         PR rtl-optimization/19348
16011         * recog.c (peephole2_optimize): Do global life update if some peephole
16012         decides it doesn't need at least one of its inputs and that change
16013         influences liveness at the start of the basic block.
16014
16015         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
16016         arguments instead of 1.
16017
16018 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16019
16020         PR middle-end/18820
16021         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
16022         zero for nested functions needing a static chain or functions
16023         with a non-constant address.
16024
16025 2005-01-13  Roger Sayle  <roger@eyesopen.com>
16026
16027         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
16028         (and (sign_extend X) C) into (zero_extend (and X C)).
16029
16030 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
16031
16032         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
16033
16034 2005-01-13  Richard Henderson  <rth@redhat.com>
16035
16036         PR target/19009
16037         PR target/19250
16038         PR target/19252
16039         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
16040         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
16041         not just TARGET_SSE.
16042         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
16043         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
16044         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
16045         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
16046         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
16047         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
16048         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
16049         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
16050         (movdicc_c_rex64): Rename with '*'.
16051         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
16052         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
16053         (movsfcc_1_387): Rename from movsfcc_1.
16054         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
16055         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
16056         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
16057         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
16058         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
16059         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
16060         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
16061         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
16062         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
16063         sse_movdfcc_const0_4): Remove.
16064         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
16065         recognize min/max early.  Update for changed sse cmove patterns.
16066         (ix86_split_sse_movcc): New.
16067         * config/i386/i386-protos.h: Update.
16068
16069 2005-01-13  Steven Bosscher  <stevenb@suse.de>
16070
16071         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
16072         (fix_stmt_v_may_defs): Likewise.
16073
16074 2005-01-13  Richard Henderson  <rth@redhat.com>
16075
16076         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
16077         for converting the mask.
16078
16079 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
16080
16081         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
16082         definition to 600.
16083
16084 2005-01-13  Richard Henderson  <rth@redhat.com>
16085
16086         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
16087         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
16088         IX86_BUILTIN_MOVDQ2Q): Remove.
16089         (IX86_BUILTIN_VEC_EXT_V4SI): New.
16090         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
16091         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
16092         shuffling.
16093         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
16094         (sse2_pextrw): Fix immediate constraint.
16095         (sse2_loadq, sse2_loadq_rex64): Remove.
16096         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
16097         Use __builtin_ia32_vec_ext_<size>.
16098         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
16099
16100 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
16101
16102         * function.c (assign_parm_setup_block): Look inside original
16103         entry_parm when inspecting PARALLEL.
16104
16105 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
16106             Joel Sherrill  <joel@oarcorp.com>
16107
16108         PR target/19399
16109         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
16110         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
16111         rtems_gxx_recursive_mutex_init.
16112         (__gthread_recursive_mutex_lock): New function.
16113         (__gthread_recursive_mutex_trylock): Likewise.
16114         (__gthread_recursive_mutex_unlock): Likewise.
16115
16116 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
16117
16118         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
16119
16120 2005-01-13  Jan Beulich  <jbeulich@novell.com>
16121
16122         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
16123         (ashrti3_internal): Indicate output is early clobber. Generate result
16124         into output rather than first input. Use move for low word of output
16125         if shift count is exactly 64.
16126         (lshrti3_internal): Likewise.
16127
16128 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
16129
16130         PR target/18329
16131         PR target/18330
16132         * reload1.c (delete_output_reload): Don't delete an output reload
16133         if the pseudo lives longer than a single basic block.  Adjust and
16134         improve wording of comment.
16135
16136 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
16137
16138         PR target/19334
16139         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
16140         of TYPE_SIZE where we mean the number of bytes.
16141
16142 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
16143
16144         * function.c (assign_parm_setup_block): Relax condition on
16145         multi-register optimization.
16146
16147 2005-01-12  Nick Clifton  <nickc@redhat.com>
16148
16149         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
16150         an "in_delay_slot" attribute of "no" to prevent them being used in
16151         delay slots.  This is forbidden because they might generate
16152         exceptions.
16153
16154 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
16155
16156         PR target/19389
16157         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
16158         with r->Y and Y->r.
16159
16160 2005-01-12  Nick Clifton  <nickc@redhat.com>
16161
16162         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
16163         passed on to GAS) but do not define, as GAS no longer supports or
16164         needs the -m2000 option.
16165
16166 2005-01-11  Roger Sayle  <roger@eyesopen.com>
16167
16168         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
16169         type as args of unprototyped builtins aren't automatically promoted.
16170         (fold_builtin_abs): Likewise.
16171
16172 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16173
16174         * Makefile.in: Set a `build-warn' variable.
16175
16176 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
16177
16178         PR tree-optimization/17949
16179         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
16180         (find_interesting_uses_address): Use it.
16181
16182 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
16183
16184         * regrename.c (kill_value): Handle subreg's that won't simplify.
16185
16186 2005-01-11  Richard Henderson  <rth@redhat.com>
16187
16188         PR target/13366
16189         * config/i386/i386.h (enum ix86_builtins): Move ...
16190         * config/i386/i386.c: ... here.
16191         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
16192         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
16193         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
16194         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
16195         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
16196         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
16197         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
16198         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
16199         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
16200         IX86_BUILTIN_LOADDDUP): Remove.
16201         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
16202         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
16203         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
16204         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
16205         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
16206         (ix86_init_builtins): Make static.
16207         (ix86_init_mmx_sse_builtins): Update for changed builtins.
16208         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
16209         if all the modes match.  Otherwise, fake it.
16210         (get_element_number, ix86_expand_vec_init_builtin,
16211         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
16212         (ix86_expand_builtin): Make static.  Update for changed builtins.
16213         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
16214         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
16215         (ix86_expand_vector_init_duplicate): New.
16216         (ix86_expand_vector_init_low_nonzero): New.
16217         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
16218         Split out from ix86_expand_vector_init; handle integer modes.
16219         (ix86_expand_vector_init): Use them.
16220         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
16221         * config/i386/i386-protos.h: Update.
16222         * config/i386/predicates.md (reg_or_0_operand): New.
16223         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
16224         (movv2sf_internal): Likewise.  And a splitter to match them all.
16225         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
16226         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
16227         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
16228         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
16229         (mmx_pinsrw): Fix operand ordering.
16230         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
16231         rather than sse_loadss expander.
16232         (movv2df splitter): Similarly.
16233         (sse_loadss, sse_loadlss): Remove.
16234         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
16235         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
16236         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
16237         (sse3_movddup): Rename with '*'.
16238         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
16239         (sse2_loadsd): Remove.
16240         (vec_dupv2df_sse3): Rename from sse3_loadddup.
16241         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
16242         (sse2_pinsrw): Fix argument ordering.
16243         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
16244         (sse2_stored): Remove 'r' destination.
16245         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
16246         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
16247         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
16248         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
16249         vec_extractv16qi, vec_initv16qi): New.
16250
16251         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
16252         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
16253         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
16254         constructor form.
16255         (_mm_load_pd, _mm_store_pd): Use plain dereference.
16256         (_mm_load_si128, _mm_store_si128): Likewise.
16257         (_mm_load1_pd): Use _mm_set1_pd.
16258         (_mm_load_sd): Use _mm_set_sd.
16259         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
16260         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
16261         (_mm_set_epi64): Use _mm_set_epi64x.
16262         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
16263         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
16264         _mm_setr_epi8): Use _mm_set_foo form.
16265         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
16266         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
16267         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
16268         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
16269         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
16270         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
16271         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
16272         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
16273         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
16274         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
16275         (_mm_movedup_pd): Use _mm_shuffle_pd.
16276         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
16277         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
16278         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
16279         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
16280         Use _mm_setzero_ps.
16281         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
16282         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
16283         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
16284         (_mm_store_ps): Use raw dereference.
16285         (_mm_store1_ps): Use _mm_storeu_ps.
16286         (_mm_storer_ps): Use _mm_store_ps.
16287         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
16288         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
16289
16290 2005-01-11  Stan Shebs  <shebs@apple.com>
16291
16292         * config/rs6000/rs6000.c (machopic_output_stub): Issue
16293         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
16294
16295 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
16296
16297         PR target/18761
16298         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16299         Skip all DECLs except for FIELD_DECLs.
16300
16301 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
16302
16303         * config/s390/s390.c (override_options): Return error if
16304         -mbackchain, -mpacked-stack and -mhard-float are used together.
16305         (s390_va_start): Remove the backchain && packed-stack special case.
16306         (s390_gimplify_va_arg): Likewise.
16307         * doc/invoke.texi: Remove the ABI incompatibility note.
16308
16309 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
16310
16311         * config/s390/s390.c (struct s390_frame_layout): Remove
16312         save_backchain_p.
16313         (s390_frame_info, s390_emit_prologue): Replace occurrences of
16314         save_backchain_p with TARGET_BACKCHAIN.
16315
16316 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
16317
16318         PR target/18916
16319         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
16320         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
16321         * function.c (locate_and_pad_parm): Set new field.
16322         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
16323         Tweak where_pad test to include "none".  Always set mem align for
16324         stack_parm.
16325         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
16326         not sufficient for type.
16327         (assign_parm_setup_block): If stack_parm is zero on entry, always
16328         make a new stack local.  Block move old stack parm if necessary
16329         to new aligned stack local.
16330         (assign_parm_setup_stack): Use a block move to handle
16331         potentially misaligned entry_parm.
16332         (assign_parms_unsplit_complex): Specify required alignment when
16333         creating stack local.
16334         * calls.c (compute_argument_addresses): Override alignment of stack
16335         arg calculated from its type with the alignment given by
16336         FUNCTION_ARG_BOUNDARY.
16337         (store_one_arg): Likewise.
16338
16339 2005-01-11  Jan Beulich  <jbeulich@novell.com>
16340
16341         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
16342         Change respective itanium_class attribute to ialu.
16343         (shladdp4_internal): New.
16344         * config/ia64/predicates.md (shladd_log2_operand): New.
16345
16346 2005-01-11  Richard Henderson  <rth@redhat.com>
16347
16348         * expr.c (store_constructor): Use rtvec_alloc instead of
16349         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
16350
16351 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
16352
16353         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
16354
16355 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
16356
16357         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
16358         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
16359         (TARGET_RWRELOC): Define.
16360         (ia64_rwreloc_section_type_flags): Delete.
16361         (ia64_section_type_flags): New function.
16362         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
16363         (TARGET_RWRELOC): Define.
16364
16365 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
16366
16367         PR target/18987
16368         * config/ia64/ia64.c (process_set): For alloc insn, only call
16369         process_epilogue is !frame_pointer_needed.
16370
16371 2005-01-10  Roger Sayle  <roger@eyesopen.com>
16372
16373         PR c++/19355
16374         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
16375         unary operator and can't be treated as a binary/comparison operator.
16376
16377 2005-01-10  Richard Henderson  <rth@redhat.com>
16378
16379         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
16380         (ix86_return_in_memory): Likewise.
16381         (function_arg_advance):  Likewise.  Mirror structure in function_arg
16382         for choosing register to advance.
16383
16384 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16385
16386         * tree-vectorizer.c, tree.def: Fix comment typos.
16387
16388 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
16389
16390         * config/s390/s390.c (struct processor_costs): 4 new fields:
16391         ddbr, ddr, debr, der.
16392         (s390_rtx_costs): More precise handling of divide instructions.
16393
16394 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
16395
16396         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
16397
16398 2005-01-10  Jan Beulich  <jbeulich@novell.com>
16399
16400         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
16401         names resulting from -ffunction-sections/-fdata-sections and linkonce
16402         ones.
16403         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
16404         based on the section name. Rearrange the section name comparison logic
16405         slightly so that each section name is compared against at most once.
16406
16407 2005-01-10  Ben Elliston  <bje@au.ibm.com>
16408
16409         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
16410         targets for which -fPIC reduces limitations on the GOT size.
16411
16412 2005-01-09  Falk Hueffner  <falk@debian.org>
16413
16414         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
16415         X/C1 cmpop C2.
16416
16417 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
16418
16419         PR target/18720
16420         * collect2.c (main): Set aixrtl_flag for -brtl option.
16421         (resolve_lib_name): Search for .so file extension before .a
16422         if aixrtl_flag set.
16423
16424 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
16425
16426         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
16427         (vect_analyze_data_refs_alignment): Add dump prints.
16428
16429 2005-01-09  Ira Rosen  <irar@il.ibm.com>
16430
16431         * tree-vectorizer.c (vect_analyze_offset_expr): Use
16432         expr_invariant_in_loop_p.
16433         Initialize outputs first thing in the function.
16434         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
16435         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
16436         (vect_analyze_pointer_ref_access): Check that the initial condition of
16437         the access function is loop invariant.
16438
16439 2005-01-09  Richard Henderson  <rth@redhat.com>
16440
16441         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
16442         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
16443         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
16444         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
16445         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
16446         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
16447         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
16448         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
16449         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
16450         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
16451         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
16452         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
16453         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
16454         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
16455         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
16456         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
16457         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
16458         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
16459         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
16460         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
16461         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
16462         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
16463         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
16464         mmx_ prefix.
16465         (mmx_clrdi, pavgusb): Remove.
16466         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
16467         with leading sse_ prefix.
16468         * config/i386/sse.md: Receive them.
16469         * config/i386/mmx.md: New file.
16470         (MMXMODE12, MMXMODE24, mmxvecsize): New.
16471         (subrv2sf3): Turn into expander for normal subtraction.
16472         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
16473         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
16474         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
16475         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
16476         commutative; use ix86_binary_operator_ok.
16477         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
16478         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
16479         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
16480         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
16481         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
16482         Macroize from existing patterns; use ix86_binary_operator_ok.
16483         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
16484         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
16485         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
16486         with vec_select+vec_concat.
16487         (mmx_pshufw, mmx_pshufw_1): Likewise.
16488         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
16489         (mmx_uavgv4hi3): Model correctly.
16490         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
16491         _mm_xor_si64): Remove casts.
16492
16493 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
16494
16495         PR tree-optimization/19224
16496         * tree-scalar-evolution.c (get_instantiated_value,
16497         set_instantiated_value): New functions.
16498         (instantiate_parameters_1): Cache the results.
16499         (instantiate_parameters, resolve_mixers): Initialize and free
16500         the cache.
16501
16502 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
16503
16504         * config/i386/i386.md (addhi_4): Correct reference in comment.
16505         (addqi_4): Same.
16506
16507 2005-01-08  Richard Henderson  <rth@redhat.com>
16508
16509         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
16510         (_mm_cvtsi128_si64x): Likewise.
16511         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
16512         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
16513         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
16514         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
16515         * config/i386/i386-protos.h: Update.
16516         * config/i386/i386.c (print_operand): Add 'H'.
16517         (ix86_fixup_binary_operands): Split out from ...
16518         (ix86_expand_binary_operator): ... here.
16519         (ix86_fixup_binary_operands_no_copy): New.
16520         (ix86_expand_fp_absneg_operator): Handle vector mode results.
16521         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
16522         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
16523         (safe_vector_operand): Use CONST0_RTX.
16524         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
16525         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
16526         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
16527         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
16528         special cases.
16529         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
16530         (IX86_BUILTIN_CMPNGESS): New.
16531         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
16532         (attr type): Add sselog1.
16533         (attr unit, attr memory): Handle it.
16534         (movti, movti_internal, movti_rex64): Move near other integer moves.
16535         (movtf, movtf_internal): Move near other fp moves.
16536         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
16537         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
16538         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
16539         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
16540         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
16541         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
16542         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
16543         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
16544         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
16545         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
16546         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
16547         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
16548         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
16549         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
16550         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
16551         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
16552         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
16553         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
16554         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
16555         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
16556         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
16557         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
16558         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
16559         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
16560         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
16561         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
16562         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
16563         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
16564         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
16565         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
16566         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
16567         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
16568         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
16569         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
16570         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
16571         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
16572         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
16573         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
16574         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
16575         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
16576         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
16577         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
16578         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
16579         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
16580         same time.
16581         (SSEPUSH, push<SSEPUSH>): Remove.
16582         (MMXPUSH, push<MMXPUSH>): Remove.
16583         (sse_movaps, sse_movaps_1, sse_movups): Remove.
16584         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
16585         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
16586         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
16587         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
16588         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
16589         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
16590         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
16591         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
16592         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
16593         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
16594         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
16595         (ppro_sse_log_V4SF): Handle sselog1.
16596         * config/i386/predicates.md (const_0_to_1_operand): New.
16597         (const_0_to_255_mul_8_operand): New.
16598         (const_1_to_31_operand): Rename from const_int_1_31_operand.
16599         (const_2_to_3_operand, const_4_to_7_operand): New.
16600         * config/i386/sse.md: New file.
16601         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
16602         (sse_movups): Rename from sse_movups_1.
16603         (sse_loadlss): Rename from sse_loadss_1.
16604         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
16605         from the name.
16606         (negv4sf2): Use ix86_expand_fp_absneg_operator.
16607         (absv4sf2, negv2df, absv2df): New.
16608         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
16609         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
16610         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
16611         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
16612         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
16613         (sse3_addsubv4sf3): Model correctly.
16614         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
16615         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
16616         (sse_movhlps): Model with vec_select+vec_concat.
16617         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
16618         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
16619         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
16620         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
16621         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
16622         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
16623         sse2_pshufhw_1): Likewise.
16624         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
16625         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
16626         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
16627         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
16628         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
16629         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
16630         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
16631         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
16632         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
16633         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
16634         sminv8hi3): Mark commutative
16635         operands.  Use ix86_binary_operator_ok.
16636         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
16637         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
16638         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
16639         sse2_punpcklqdq): Allow operand2 in memory.
16640         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
16641         sse2_movsd): Add memory alternatives.
16642         (sse_storelps): Turn expander into an insn; split after reload.
16643         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
16644         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
16645
16646 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
16647
16648         * configure.ac (DWARF-2 debug_line): Use objdump.
16649         * configure: Regenerate.
16650
16651 2005-01-08  Jeff Law  <law@redhat.com>
16652             Diego Novillo  <dnovillo@redhat.com>
16653
16654         PR tree-optimization/18241
16655         * tree-nrv.c (tree_nrv): Ignore volatile return values.
16656         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
16657         statements with volatile operands.
16658         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
16659         operands after marking a statement with has_volatile_ops.
16660
16661 2005-01-08  Roger Sayle  <roger@eyesopen.com>
16662
16663         * tree.c (int_fits_type_p): Always honor integer constant
16664         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
16665
16666 2005-01-08  Roger Sayle  <roger@eyesopen.com>
16667
16668         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
16669         the latent bug in rtl_delete_block has been resolved.
16670
16671 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
16672
16673         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
16674         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
16675
16676 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
16677
16678         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
16679         library as @multilib_dir@/$(SHLIB_SONAME).
16680
16681 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16682
16683         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
16684         * configure: Regenerate.
16685
16686 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
16687
16688         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
16689         TYPE_MODE.
16690
16691 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
16692
16693         PR target/13674
16694         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
16695         Convert non-word aligned offset address using ld/std into
16696         indirect address.
16697
16698 2005-01-07  Richard Henderson  <rth@redhat.com>
16699
16700         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
16701
16702 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
16703
16704         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
16705
16706 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
16707
16708         PR tree-optimization/19283
16709         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
16710         is not shorter than the original type.
16711
16712         PR rtl-optimization/19012
16713         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
16714
16715         PR rtl-optimization/18861
16716         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
16717         (FULL_STATE): Define.
16718         (mark_tablejump_edge): New function.
16719         (purge_dead_tablejump_edges): New function.
16720         (find_bb_boundaries): Use it.
16721
16722         PR tree-optimization/18828
16723         * builtins.c (expand_builtin_next_arg): Remove argument and all
16724         the argument checking.
16725         (expand_builtin): Adjust caller.
16726         (expand_builtin_va_start): Likewise.  Remove error for too many
16727         arguments.
16728         (fold_builtin_next_arg): Issue error for too many arguments.
16729         After checking arguments, replace them with magic arguments that
16730         prevent further checking of the args.
16731
16732 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16733
16734         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
16735
16736 2005-01-06  Roger Sayle  <roger@eyesopen.com>
16737
16738         PR target/6077
16739         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
16740         and %{.S:...} (and their negative variants) to test whether the
16741         input file is assembler or pre-processed-assembler independent of
16742         the actual filename extension.
16743
16744 2005-01-06  Roger Sayle  <roger@eyesopen.com>
16745
16746         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
16747         of sign or zero extended values.
16748
16749 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
16750
16751         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
16752         for IBM long double format correctly.
16753
16754 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
16755
16756         Fix PR tree-optimization/18792
16757
16758         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
16759         to first_loop_depth, and use loop depth instead of loop number.
16760         (build_classic_dir_vector): Ditto.
16761         (compute_data_dependences_for_loop): Use depth, not loop number.
16762         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
16763         number. Pass in loops, instead of loop numbers.
16764         (gather_interchange_stats): Ditto.
16765         (linear_transform_loops): Ditto.
16766
16767 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
16768
16769         PR rtl-opt/13299
16770         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
16771         biv_fits_mode_p, extension_within_bounds_p): New functions.
16772         (check_ext_dependent_givs): Use them.
16773
16774 2005-01-06  Roger Sayle  <roger@eyesopen.com>
16775
16776         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
16777         more than one barrier, in which case we should delete them all.
16778
16779 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
16780
16781         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
16782
16783 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
16784
16785         Fix PR middle-end/19286
16786         Fix PR debug/19267
16787         * dwarf2out.c (gen_subprogram_die): If we've already tried to
16788         output this subprogram, simply ignore this attempt to do it again.
16789         (add_abstract_origin_attribute): Don't abort trying to add the abstract
16790         origin attribute if it's not possible.
16791         (gen_block_die): Don't ignore subblocks of "unused" blocks.
16792         (decls_for_scope): Ditto.
16793         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
16794         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
16795
16796 2005-01-05  Richard Henderson  <rth@redhat.com>
16797
16798         PR target/11327
16799         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
16800         (bdesc_2arg): Use it.
16801         (ix86_expand_binop_builtin): Force operands into registers
16802         when optimizing.
16803         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
16804         ix86_expand_sse_compare, ix86_expand_sse_comi,
16805         ix86_expand_builtin): Likewise.
16806
16807 2005-01-05  Richard Henderson  <rth@redhat.com>
16808
16809         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
16810         and VEC_SELECT.
16811         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
16812         (mulv4hi3): Set itanium_class mmmul.
16813         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
16814         (fpack): Rename from fpack_sfsf.
16815
16816 2005-01-05  Richard Henderson  <rth@redhat.com>
16817
16818         PR rtl-opt/10692
16819         * reload1.c (do_input_reload): Restrict the optimization deleteing
16820         a previous output reload to RELOAD_FOR_INPUT.
16821
16822 2005-01-05  Steven Bosscher  <stevenb@suse.de>
16823
16824         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
16825         comment that we fall through after case.
16826         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
16827         (distribute_links): Likewise.
16828         * cse.c (cse_insn): Likewise.
16829         * cselib.c (cselib_invalidate_mem): Likewise.
16830         * df.c: Update comments at the top of the file.
16831         (read_modify_subreg_p): Update comments here too.
16832         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
16833         * flow.c (mark_set_1): Likewise.
16834         (mark_used_regs): Likewise.
16835         * gcse.c (mems_conflict_for_gcse_p): Likewise.
16836         (canon_list_insert): Likewise.
16837         (mark_set): Likewise.
16838         (try_replace_reg): Likewise.
16839         (store_killed_in_insn): Likewise.
16840         * loop.c (count_one_set): Likewise.
16841         (basic_induction_var): Likewise.
16842         * postreload-gcse.c (find_mem_conflicts): Likewise.
16843         * postreload.c (reload_combine_note_store): Likewise.
16844         (move2add_note_store): Likewise.
16845         * reload.c (find_equiv_reg): Likewise.
16846         (mark_referenced_resources): Likewise.
16847         * rtlanal.c (set_noop_p): Likewise.
16848         (note_stores): Likewise.
16849         (note_uses): Likewise.
16850         * sched-deps.c (sched_analyze_1): Likewise.
16851         * sched-rgn.c (check_live_1): Likewise.
16852         (update_live_1): Likewise.
16853         * config/i860/i860.c: Likewise.
16854
16855         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
16856         an lvalue.
16857         (ZERO_EXTRACT): Mention that this one can be an lvalue.
16858
16859         * doc/rtl.texi: Update documentation for bit-fields and SET.
16860
16861 2005-01-05  Roger Sayle  <roger@eyesopen.com>
16862
16863         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
16864
16865 2005-01-05  Jan Hubicka  <jh@suse.cz>
16866             Richard Henderson  <rth@redhat.com>
16867
16868         PR target/18910
16869         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
16870         with an offset.
16871
16872 2005-01-05  Richard Henderson  <rth@redhat.com>
16873
16874         PR target/12902
16875         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
16876         (sse_shufps): Change operand 3 to const_int_operand.
16877         (sse2_storelps): Fix typo in template.
16878         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
16879         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
16880         (ix86_expand_builtin): Likewise.
16881
16882 2005-01-05  Julian Brown  <julian@codesourcery.com>
16883
16884         * config/arm/arm.c (arm_return_in_memory): Treat complex types
16885         as aggregates for AAPCS ABIs.
16886
16887 2005-01-05  Stan Shebs  <shebs@apple.com>
16888
16889         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
16890         Mach-O getters if ppc64.
16891         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
16892         size argument.
16893         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
16894         signed four-byte field for global code case.
16895         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
16896
16897 2005-01-05  Roger Sayle  <roger@eyesopen.com>
16898
16899         PR middle-end/19100
16900         * c-common.c: Include real.h.
16901         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
16902         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
16903         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
16904         * Makefile.in (c-common.o): Update dependencies.
16905
16906 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
16907
16908         * c-parse.in (asm_string): Add trailing semicolon.
16909
16910 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
16911
16912         * c-parse.in (asm_string): New.  Don't allow wide strings in
16913         'asm'.
16914         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
16915         asm_string instead of STRING.
16916
16917 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
16918
16919         * c-typeck.c (constructor_no_implicit): Remove.
16920         (set_designator, process_init_element): Don't check
16921         constructor_no_implicit.
16922
16923 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
16924             Kaz Kojima  <kkojima@gcc.gnu.org>
16925
16926         PR target/16482
16927         * lcm.c (create_pre_exit): New.
16928         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
16929         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
16930
16931 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
16932
16933         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
16934         -msoft-float in target_float_switch.
16935         * arm.c (arm_override_options): Fix processing of target_float_switch.
16936
16937 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
16938
16939         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
16940         preferencing.
16941
16942 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
16943
16944         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
16945         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
16946
16947 2005-01-04  Roger Sayle  <roger@eyesopen.com>
16948
16949         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
16950         if deleting the then-block allows the test-block to fallthru to the
16951         else-block.
16952
16953 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
16954
16955         PR c/19152
16956         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
16957         after the full declaration if the are in two different TUs.
16958
16959 2005-01-04  Richard Henderson  <rth@redhat.com>
16960
16961         PR tree-opt/19158
16962         * tree-sra.c (generate_one_element_init): Just
16963         call gimplify_and_add.
16964         (generate_element_init): Record the
16965         new referenced variables and mark them for renaming
16966         and split out to ...
16967         (generate_element_init_1): This.
16968         (scalarize_init): Don't call push_gimplify_context/
16969         pop_gimplify_context.
16970
16971 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
16972
16973         * toplev.c (get_src_pwd): Handle failure of getpwd().
16974
16975 2005-01-04  Roger Sayle  <roger@eyesopen.com>
16976
16977         * fold-const.c (fold_single_bit_test): Delete unreachable handling
16978         of TRUTH_NOT_EXPR.
16979         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
16980         all the cases handled by it are inverted by invert_truthvalue.
16981
16982 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16983
16984         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
16985         (save_register_windowsi): Likewise.
16986
16987 2005-01-04  Richard Henderson  <rth@redhat.com>
16988
16989         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
16990
16991 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
16992
16993         PR middle-end/17767
16994         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
16995         any simplifications of vector mode comparison operators.
16996         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
16997
16998 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
16999             Devang Patel  <dpatel@apple.com>
17000
17001         PR tree-optimization/18308
17002         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
17003         the operands before creating a new expression.
17004         * dojump.c (do_jump): Make drop_through_label available
17005         for all cases.  Add expansion of COND_EXPR.
17006
17007 2005-01-04  Ira Rosen  <irar@il.ibm.com>
17008
17009         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
17010         INTEGER_CST instead of TREE_CONSTANT.
17011         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
17012         instead of TREE_CONSTANT.
17013         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
17014         instead of TREE_CONSTANT.
17015
17016 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
17017
17018         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
17019
17020 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
17021
17022         PR target/19240
17023         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
17024         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
17025
17026 2005-01-03  Richard Henderson  <rth@redhat.com>
17027
17028         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
17029         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
17030         fold_convert_const_real_from_real): Split out from ...
17031         (fold_convert_const): ... here.
17032
17033 2005-01-03  Richard Henderson  <rth@redhat.com>
17034
17035         PR target/19235
17036         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
17037         (mov<MMXMODEI>_internal): Likewise.
17038         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
17039         Add V2SF case; use it for SSE1; don't use TI.
17040         (movdf_integer): Likewise.
17041         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
17042
17043 2005-01-03  Ira Rosen  <irar@il.ibm.com>
17044
17045         * tree-vectorizer.c (vect_strip_conversions): New function.
17046         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
17047         check for binary class.
17048
17049 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
17050
17051         Fix PR debug/17924
17052         Fix PR debug/19191
17053         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
17054         is a decl.
17055         * gimple-low.c (mark_blocks_with_used_vars): New function.
17056         (mark_blocks_with_used_subblocks): Ditto.
17057         (mark_used_blocks): Ditto.
17058         (pass_mark_used_blocks): New pass.
17059         * tree-inline.c: Include debug.h.
17060         (expand_call_inline): Call outlining_inline_function here.
17061         * tree-optimize.c (init_tree_optimization_passes): Add
17062         pass_mark_used_blocks.
17063         * tree-pass.h (pass_mark_used_blocks): New.
17064         * Makefile.in (tree-inline.o): Add debug.h dependency.
17065
17066 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
17067
17068         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
17069         VAR_DECLs to have weak_import attribute.
17070
17071         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
17072         'struct ucontext'.
17073
17074 2004-01-03  Steven Bosscher  <stevenb@suse.de>
17075
17076         * passes.c (rest_of_compilation): Don't run regmove if only
17077         flag_expensive_optimizations, require flag_regmove instead.
17078
17079 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
17080
17081         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
17082         register "sparc".
17083         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
17084         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
17085         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
17086         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
17087
17088 2005-01-03  Richard Henderson  <rth@redhat.com>
17089
17090         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
17091         (ia64_const_ok_for_letter_p): New.
17092         (ia64_const_double_ok_for_letter_p): New.
17093         (ia64_extra_constraint): New.
17094         (ia64_expand_vecint_compare): New.
17095         (ia64_expand_vcondu_v2si): New.
17096         (ia64_expand_vecint_cmov): New.
17097         (ia64_expand_vecint_minmax): New.
17098         (ia64_print_operand): Add 'v'.
17099         (ia64_preferred_reload_class): New.
17100         (ia64_vector_mode_supported_p): New.
17101         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
17102         (PREFERRED_RELOAD_CLASS): Move to function.
17103         (CONST_OK_FOR_LETTER_P): Move to function.
17104         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
17105         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
17106         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
17107         (EXTRA_CONSTRAINT): Move to function.
17108         * config/ia64/ia64.md: Include vect.md.
17109         (itanium_class): Add mmalua.
17110         (type): Handle it.
17111         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
17112         (1b_mmalua): New.
17113         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
17114         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
17115         CONST0_RTX.
17116         (const_int_2bit_operand): New.
17117         (fr_reg_or_0_operand): New.
17118         * config/ia64/ia64-modes.def: Add vector modes.
17119         * config/ia64/ia64-protos.h: Update.
17120         * config/ia64/vect.md: New file.
17121
17122 2005-01-03  Richard Henderson  <rth@redhat.com>
17123
17124         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
17125
17126 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
17127
17128         PR target/19236
17129         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
17130         to SFmode.
17131         (log1pdf2): Change mode of operands[0,1] to DFmode.
17132
17133 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
17134
17135         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
17136         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
17137         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
17138         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
17139         SPARC_RELAXED_ORDERING.
17140
17141 2005-01-03  Richard Henderson  <rth@redhat.com>
17142             Uros Bizjak  <uros@kss-loka.si>
17143
17144         PR target/14631
17145         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
17146         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
17147         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
17148         handling.
17149         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
17150         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
17151         const_pow2_1_to_128_operand): New predicates.
17152
17153 2005-01-02  Greg McGary  <greg@mcgary.org>
17154
17155         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
17156         anonymous decls.
17157         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
17158         object.  [ptr_type]: Remove unused variable.
17159         Remember nearest addressable array-element or record-component
17160         when checking bitfield components.  Tolerate empty BIND_EXPR.
17161
17162 2005-01-01  Richard Henderson  <rth@redhat.com>
17163
17164         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
17165         that don't narrow the value.  Fail for other conversions.
17166
17167 2005-01-01  Richard Henderson  <rth@redhat.com>
17168
17169         PR c/19031
17170         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
17171         * c-lang.c (finish_file): Don't do it here.
17172         * objc/objc-act.c (objc_finish_file): Likewise.
17173
17174         * cgraph.c (decl_assembler_name_equal): New.
17175         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
17176         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
17177         * cgraph.h (struct cgraph_varpool_node): Add next.
17178         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
17179         * varasm.c (assemble_alias): Mark the target as needed.
17180
17181 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
17182
17183         PR middle-end/19221
17184         * function.c (get_arg_pointer_save_area): Use entry_of_function
17185         instead of get_insns.
17186
17187 2005-01-01  Roger Sayle  <roger@eyesopen.com>
17188             Andrew Pinski  <pinskia@physics.uc.edu>
17189             James E. Wilson  <wilson@specifixinc.com>
17190
17191         PR rtl-optimization/12092
17192         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
17193         is zero.
17194
17195 2005-01-01  Roger Sayle  <roger@eyesopen.com>
17196             Olivier Hainque  <hainque@act-europe.fr>
17197
17198         * tree.c (int_fits_type_p): A narrower type always fits in a
17199         wider one, except for negative values into unsigned types.
17200
17201 2005-01-01  Roger Sayle  <roger@eyesopen.com>
17202
17203         * tree.c (int_fits_type_p): Compare the result of force_fit_type
17204         with the original constant rather than require TREE_OVERFLOW.
17205
17206 2005-01-01  Steven Bosscher  <stevenb@suse.de>
17207
17208         PR middle-end/17544
17209         * c-decl.c (finish_function): If compiling C99, annotate the
17210         compiler generated return with the current file name and line 0.
17211         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
17212         the source line is greater than 0.
17213         (remove_bb): Likewise.