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