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