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