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