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