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