1 2005-04-28 DJ Delorie <dj@redhat.com>
3 * opt-functions.awk (var_set): Emit proper initializer for
6 2005-04-28 Devang Patel <dpatel@apple.com>
8 * dbxout.c (have_used_extensions): Remove.
9 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
12 2005-04-28 James E Wilson <wilson@specifixinc.com>
14 * doc/install.texi: Update -enable-languages info. Correct path to
17 2005-04-28 DJ Delorie <dj@redhat.com>
19 * optc-gen.awk (END): Make sure no variable is defined more
21 * opth-gen.awk (END): Allocate bits on a per-variable basis.
22 Allow for bitfield variables other than target_flags.
23 * doc/options.text (Mask): Document that you may specify a
24 variable other than target_flags.
26 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
28 PR rtl-optimization/18877
29 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
32 2005-04-28 David Edelsohn <edelsohn@gnu.org>
35 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
37 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
38 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
39 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
41 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
43 * arm.c (legitimize_pic_address): Fix sense of assertion test for
44 creating pseudos when the base offset is too large.
46 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
48 * global.c (earlyclobber_regclass): Change the type to
50 (check_earlyclobber): Update uses of earlyclobber_regclass.
51 (mark_reg_use_for_earlyclobber): Likewise.
52 (calculate_local_reg_bb_info): Allocate and free
53 earlyclobber_regclass using the VEC API.
55 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
57 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
60 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
62 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
65 * config.gcc: Obsolete c4x-* and tic4x-*.
67 * tree.h (edge_def): Remove.
69 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
70 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
71 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
72 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
75 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
76 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
77 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
78 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
79 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
80 machmode.def, mips-tfile.c, params.c, pretty-print.c,
81 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
82 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
83 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
84 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
85 config/i386/cygming.h, config/i386/djgpp.h,
86 config/i386/lynx.h, config/i386/netware.c,
87 config/i386/winnt.c, config/ia64/ia64-c.c,
88 config/iq2000/iq2000.c, config/m32r/little.h,
89 config/m68k/m68k-protos.h, config/m68k/m68k.h,
90 config/m68k/m68k.md, config/mcore/mcore.c,
91 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
92 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
93 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
94 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
95 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
96 config/pdp11/pdp11.h, config/rs6000/darwin.h,
97 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
98 config/s390/2064.md, config/s390/2084.md,
99 config/s390/s390-modes.def, config/s390/s390-protos.h,
100 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
101 config/stormy16/stormy16.c, config/vax/vax-protos.h,
102 config/vax/vax.c, config/vax/vax.h,
103 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
106 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
108 * c-typeck.c (build_compound_expr): Correct logic in last change.
110 2005-04-27 James E. Wilson <wilson@specifixinc.com>
112 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
113 parameters. Replace conditional move code with assert checking for
114 ar.lc. Delete obsolete comments.
115 (set_src_needs_barrier): Delete cond parameter, and code using it.
116 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
117 assert checking for PR_REGS. Fix calls to update_set_flags and
118 set_src_needs_barrier.
119 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
120 callers. Rewrite explanatory comment before the function.
121 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
124 2005-04-27 Mike Stump <mrs@apple.com>
126 * doc/cpp.texi: gcc now implements universal character names.
128 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
131 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
132 being a compound expression whose right-hand side is cast to void.
134 2005-04-27 Caroline Tice <ctice@apple.com>
136 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
137 Remove targetm.have_named_sections test.
138 (fix_edges_for_rarely_executed_code): Likewise.
139 (insert_section_boundary_note): Likewise.
140 (reorder_basic_blocks): Check partitioning flag before calling
141 verify_hot_cold_block_grouping.
142 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
143 the function struct rather than global variables.
144 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
145 (COLD_END_LABEL): Likewise
146 (cold_text_section_label): New static global variable.
147 (cold_end_label): Likewise.
148 (dwarf2out_switch_text_section): Get hot/cold section labels from
149 the function struct rather than global variables; test to make sure
151 (output_aranges): Use cold_text_section_label and cold_end_label;
152 check partitioning flag before putting out delta.
153 (output_ranges): Remove incorrect code attempting to use
155 (output_line_info): Get cold section label from function struct; test
156 to make sure cfun is defined.
157 (add_location_or_const_value_attribute): Likewise.
158 (dwarf2out_var_location): Likewise.
159 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
160 write out cold_text_section_label if partition flag is set.
161 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
162 * function.h (struct function): Add new fields to point to hot/cold
163 section labels: hot_section_label, cold_section_label,
164 hot_section_end_label and cold_section_end_label; also add new field
165 for cold text section name, unlikely_text_section_name.
166 * opts.c (decode_options): Turn off partitioning flag if
167 !targetm.have_named_sections.
168 * output.h (hot_section_label): Remove.
169 (hot_section_end_label): Remove.
170 (cold_section_end_label): Remove.
171 (unlikely_section_label): Remove.
172 (unlikely_text_section_name): Remove.
173 * passes.c (rest_of_handle_final): Remove extra blank line.
174 * varasm.c (unlikely_section_label): Remove.
175 (hot_section_label): Remove.
176 (hot_section_end_label): Remove.
177 (cold_section_end_label): Remove.
178 (unlikely_text_section_name): Remove.
179 (initialize_cold_section_name): Modify to call
180 targetm.strip_name_encoding; to store cold section name in current
181 function struct, if it exists; and to only use the decl_section_name
182 if flag_named_sections is true.
183 (unlikely_text_section): Modify to get section name out of current
184 function struct, if there is one; otherwise build it from
185 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
186 (in_unlikely_text_section): Likewise.
187 (named_section): Modify to get/put cold section name in current function
188 struct, if there is one.
189 (function_section): Change 'bool unlikely' to 'int reloc'; check
190 targetm.have_named_sections before calling named_section.
191 (current_function_section): Likewise.
192 (assemble_start_function): Modify to get/put unlikely_text_section_name
193 in current function struct; modify to get hot/cold section labels
194 from function struct; initialize labels using
195 ASM_GENERATE_INTERNAL_LABEL;
196 test partitioning flag before writing out hot section label.
197 (assemble_end_function): Test partitioning flag before writing out
198 hot/cold section labels.
199 (default_section_type_flags_1): Get cold text section name from
200 function struct if there is one; Set flags correctly for
201 cold text section if there is not a current function struct.
203 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
205 * tree-ssa-propagate.c (set_rhs): Revert last change.
207 2005-04-27 Steve Ellcey <sje@cup.hp.com>
209 * explow.c (convert_memory_address): Add gcc_assert.
211 2005-04-27 Mark Mitchell <mark@codesourcery.com>
213 * configure.ac: Check for ld --sysroot support.
214 * gcc.c: Document %R specifier for specs.
215 (SYSROOT_SPEC): New macro.
216 (sysroot_spec): New variable.
217 (static_specs): Add sysroot_spec.
218 (main): Pass the sysroot spec to the linker if appropriate.
219 * configure: Regenerated.
220 * config.in: Likewise.
222 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
224 * fold-const.c (fold_binary): Use build_fold_addr_expr
225 for address calculation and INDIRECT_REF handling.
227 2005-04-27 Andrew Haley <aph@redhat.com>
229 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
231 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
233 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
234 pointer when thumb backtracing is on.
236 * config/fp-bit.c (abort): Revert change.
238 2005-04-27 Ian Lance Taylor <ian@airs.com>
240 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
242 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
244 * tree-ssa-dce.c: Fix a comment typo.
246 2005-04-27 David S. Miller <davem@davemloft.net>
248 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
249 Kill setjmpless_size. current_function_calls_setjmp is completely
250 computed when we are called, so just use the optimized size value
251 instead of using REG_SAVE_AREA notes.
252 (optimize_save_area_alloca): Delete....
253 * rtl.h (optimize_save_area_alloca): Likewise...
254 * passes.c (rest_of_compilation): and don't call it any more.
255 * reg-notes.def (SAVE_AREA): Delete.
257 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
259 * config/fp-bit.c (abort): Add noreturn attribute.
261 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
262 gcc_unreachable as appropriate.
263 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
264 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
265 ASM_OUTPUT_REG_POP): Likewise.
267 2005-04-27 Paolo Bonzini <bonzini@gnu.org>
269 * tree-complex.c (expand_vector_operations_1): Do not build
270 VIEW_CONVERT_EXPR's for the lhs.
272 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
274 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
275 unnecessary noncanonical RTL handling.
276 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
277 gcc_assert and gcc_unreachable.
279 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
280 gcc_unreachable as appropriate.
281 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
282 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
283 use_return_insn, const_ok_for_op, arm_gen_constant,
284 arm_canonicalize_comparison, legitimize_pic_address,
285 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
286 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
287 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
288 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
289 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
290 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
291 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
292 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
293 output_call, output_mov_long_double_fpa_from_arm,
294 output_mov_long_double_arm_from_fpa,
295 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
296 output_move_double, arithmetic_instr, shift_op, int_log2,
297 output_return_instruction, arm_output_function_prologue,
298 arm_output_epilogue, arm_output_function_epilogue,
299 emit_multi_reg_push, arm_get_frame_offsets,
300 arm_compute_initial_elimination_offset, arm_expand_prologue,
301 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
302 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
303 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
304 thumb_compute_initial_elimination_offset,
305 thumb_output_function_prologue, thumb_load_double_from_address,
306 thumb_output_move_mem_multiple, thumb_reload_out_hi,
307 arm_emit_vector_const, arm_dbx_register_number): Likewise.
308 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
309 * config/arm/arm.md (thumb_extendhisi2,
310 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
311 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
312 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
313 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
314 * config/arm/cirrus.md (*cirrus_arm_movdi,
315 *cirrus_movdf_hard_insn): Likewise.
316 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
318 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
320 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
321 (num_ssa_names): Use VEC_length.
322 (ssa_names): Use VEC_index.
323 * tree-ssanames.c (ssa_names): Change the type to
325 (init_ssanames, fini_ssa_names, make_ssanames,
326 release_ssa_name): Update uses of ssa_names.
328 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
329 Use fold_buildN instead of fold (buildN (...)).
331 2005-04-27 Devang Patel <dpatel@apple.com>
333 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
335 2005-04-27 Matt Thomas <matt@3am-software.com>
336 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
338 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
339 (vax_output_mi_thunk): Ditto.
340 (vax_notice_cc_update): Ditto.
341 (INDEX_REGISTER_P): Add trailing \.
342 (BASE_REGISTER_P): Add trailing \.
343 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
345 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
347 * tree-ssa-propagate.c (set_rhs): Check operand of
348 ADDR_EXPR for gimpliness, too.
350 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
352 * tree-ssa-pre.c: Fix a comment typo.
354 2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
356 PR tree-optimization/21171
357 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
358 record address uses if the reference is volatile.
360 2004-04-27 Paolo Bonzini <bonzini@gnu.org>
362 * tree-complex.c (expand_vector_operation): New, extracted from
363 expand_vector_operations_1.
364 (tree_vec_extract): Build a NOP_EXPR.
365 (expand_vec_parallel): Do not care about returning the correct type.
366 (expand_vector_operations_1): Call expand_vector_operation.
367 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
369 * tree-complex.c (gate_expand_vector_operations): New.
370 (pass_lower_vector_ssa): Use it.
371 * tree-optimize.c (init_tree_optimization_passes): Include
372 pass_lower_vector_ssa.
373 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
374 (vectorizable_operation): Use it.
375 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
376 integer modes for the vector type.
378 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
379 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
380 Do not cope with UNITS_PER_SIMD_WORD == 0.
381 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
382 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
383 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
384 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
385 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
386 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
387 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
389 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
390 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
391 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
393 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
394 (UNITS_PER_SIMD_WORD): New.
396 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
398 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
399 gcc_unreachable as appropriate.
400 (ia64_expand_load_address, ia64_expand_tls_address,
401 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
402 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
403 next_scratch_gr_reg, ia64_initial_elimination_offset,
404 ia64_expand_prologue, ia64_expand_epilogue,
405 ia64_output_dwarf_dtprel, ia64_print_operand,
406 ia64_register_move_cost, first_instruction, rws_access_regno,
407 update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
408 ia64_sched_init, ia64_variable_issue,
409 ia64_first_cycle_multipass_dfs_lookahead_guard,
410 ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
411 ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
412 process_for_unwind_directive, ia64_hpux_file_end): Likewise.
413 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
414 * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
415 * config/ia64/predicates.md (got_symbolic_operand,
416 sdata_symbolic_operand): Likewise.
417 * config/ia64/vect.md (vcondv2sf): Likewise.
419 2005-04-27 Matt Thomas <matt@3am-software.com>
421 * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
422 CONSTANT_ADDRESS_P in config/vax/vax.h
423 (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
424 (INDEX_REGISTER_P): New.
425 (BASE_REGISTER_P): New.
426 (indirectable_constant_address_p): New. Adapted from
427 INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
428 (indirectable_address_p): New. Adapted from
429 INDIRECTABLE_ADDRESS_P in vax.h.
430 (nonindexed_address_p): New. Adapted from
431 GO_IF_NONINDEXED_ADDRESS in vax.h.
432 (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
433 (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
434 (legitimate_address_p): New. Adapted from
435 GO_IF_LEGITIMATE_ADDRESS in vax.h.
436 (vax_mode_dependent_address_p): New. Adapted from
437 GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
438 * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
439 legitimate_constant_address_p.
440 (CONSTANT_P): Use legitimate_constant_p.
441 (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
442 (INDIRECTABLE_ADDRESS_P): Removed.
443 (GO_IF_NONINDEXED_ADDRESS): Removed.
444 (INDEX_TEMP_P): Removed.
445 (GO_IF_REG_PLUS_INDEX): Removed.
446 (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
447 definitions, depending on whether REG_OK_STRICT is defined.
448 (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
449 Two definitions, depending on whether REG_OK_STRICT is defined.
450 * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
452 (legitimate_constant_p): Prototype added.
453 (legitimate_address_p): Prototype added.
454 (vax_mode_dependent_address_p): Prototype added.
456 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
458 * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
460 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
463 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
466 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
469 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
470 assertion failures, if __gcc_host_wide_int__ is not properly
472 (init_dynamic_diag_info): Give errors, not assertion failures, if
473 location_t, tree or __gcc_host_wide_int__ are not properly
476 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
478 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
479 n_iv_uses, iv_use, n_iv_cands, iv_cand,
480 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
481 prepare_decl_rtl, free_loop_data,
482 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
485 * tree.h (tree_phi_node): Add a comment about the order of PHI
488 2005-04-26 Paul Brook <paul@codesourcery.com>
490 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
492 2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
494 * config/mips.mips.c (mips_legitimize_tls_address): Use
497 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
498 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
499 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
501 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
504 2005-04-26 Jeff Law <law@redhat.com>
506 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
507 (op_iter_init_must_and_may_def): Likewise.
508 (unmodifiable_var_p): Move to a later point in the file.
509 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
510 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
511 (dse_record_phis): Directly check for virtual operands rather than
512 using need_imm_uses_for.
513 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
514 store has multiple V_{MAY,MUST}_DEF operands.
516 2005-04-26 Andrew MacLeod <amacleod@redhat.com>
518 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
521 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
523 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
524 call to find_edge outside a loop to go through a PHI chain.
526 2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
528 PR tree-optimization/17598
529 * fold-const.c (fold_binary): Fold comparisons of addresses
530 of COMPONENT_REFs which reference the same field to
531 comparisons of the addresses of the base objects.
533 2005-04-26 Julian Brown <julian@codesourcery.com>
535 * config/arm/arm.c (arm_return_in_msb): New function.
536 (arm_must_pass_in_stack): New function.
537 (TARGET_RETURN_IN_MSB): Define target hook.
538 (TARGET_MUST_PASS_IN_STACK): Define target hook.
539 (arm_function_value): Pad small aggregate return.
540 (arm_pad_arg_upward): New function.
541 (arm_pad_reg_upward): New function.
542 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
543 (FUNCTION_ARG_PADDING): Define macro.
544 (BLOCK_REG_PADDING): Define macro.
545 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
546 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
547 (arm_pad_reg_upward): Declare function.
549 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
551 * basic-block.h (ei_cond): New.
552 (FOR_EACH_EDGE): Call ei_cond.
554 PR tree-optimization/21047
555 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
556 (fold): Don't handle ASSERT_EXPR.
558 2005-04-25 Roger Sayle <roger@eyesopen.com>
560 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
561 all writes to any stack register as a read/write dependency on
563 (sched_analyze_2): Likewise, for reads from any stack register.
565 2005-04-25 Richard Henderson <rth@redhat.com>
567 * final.c (output_addr_const): Revert 2005-04-09 change.
569 2005-04-25 Mike Stump <mrs@apple.com>
571 * config/darwin.c (darwin_encode_section_info): Always set
572 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
574 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
576 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
577 gensupport.c, protoize.c, toplev.c: Replace calls to
578 `unlock_stream' with `unlock_std_streams'.
580 2005-04-25 Devang Patel <dpatel@apple.com>
582 * dbxout.c (dbxout_type): Emit attribute vector.
584 2005-04-05 Paul Brook <paul@codesourcery.com>
586 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
587 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
588 * config/arm/arm.c (arm_cxx_atexit_name): New function.
589 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
590 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
591 (register_dtor_fn): Likewise.
592 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
594 2005-04-25 Ian Lance Taylor <ian@airs.com>
596 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
597 * c-common.h (EXPR_STMT_EXPR): Don't define.
598 (c_common_stmt_codes): Don't define.
599 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
600 * c-gimplify.c (gimplify_expr_stmt): Remove.
601 (c_gimplify_expr): Remove EXPR_STMT case.
602 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
603 to INIT_STATEMENT_CODES.
604 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
606 2005-04-25 Jan Hubicka <jh@suse.cz>
608 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
610 * except.c: Include diagnostic.h
611 (dump_eh_tree, verify_eh_tree): New functions.
612 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
613 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
614 (dump_function_to_file): dump eh tree.
615 * tree-eh.c (mark_eh_edge): New function.
616 (mark_eh_edge_found_error): New static variable.
617 (verify_eh_edges): New function.
619 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
621 * tree-ssa-alias.c (fieldoff_t): Remove.
622 (fieldoff_s): typedef the structure itself. Create a vector of
624 (push_fields_onto_fieldstack): Return count of fields pushed.
625 Remove peeling of first field. Adjust.
626 (fieldoff_compare): Adjust.
627 (create_overlap_variables_for): Adjust.
629 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
631 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
633 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
636 * doc/install.texi: Document correct assembler and linker to use
637 on i?86-*-solaris2.10.
639 2005-04-25 Steven Bosscher <stevenb@suse.de>
641 Fix PR tree-optimization/21173
643 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
644 Unshare expression we pass to force_gimple_operand.
646 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
647 Stephen Clarke <stevec@superh.com>
648 Roger Sayle <roger@eyesopen.com>
650 PR rtl-optimization/20413
651 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
652 VOIDmode for LABEL_REF.
653 * final.c (shorten_branches): Likewise.
654 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
655 * loop.c (reg_dead_after_loop): Likewise.
656 * varasm.c (decode_addr_const): Likewise.
657 * doc/rtl.texi: Document mode requirement for LABEL_REF.
659 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
661 * config.gcc (avr-*-*): Remove redundant "case".
663 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
665 * tree-vect-analyze.c (vect_mark_relevant): Take
666 VEC(tree,heap) instead of varray_type as an argument.
667 (vect_mark_stmts_to_be_vectorized): Change the type of
668 worklist to VEC(tree,heap). Adjust uses of worklist.
670 2005-04-24 Devang Patel <dpatel@apple.com>
672 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
674 2005-04-24 Ian Lance Taylor <ian@airs.com>
676 * c-semantics.c (build_stmt): Remove test of specific tree codes
677 for TREE_SIDE_EFFECTS handling.
679 2005-04-24 Per Bothner <per@bothner.com>
681 * c-opts.c (finish_options): Make the line-number of the <built-in>
682 location 0, as assumed elsewhere, rather than 1.
684 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
686 * tree-ssa-uncprop.c (equiv_stack): Change the type o
688 (tree_ssa_uncprop, uncprop_finalize_block,
689 uncprop_initialize_block): Update uses of equiv_stack.
691 2005-04-24 Richard Henderson <rth@redhat.com>
694 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
695 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
697 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
698 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
699 <DIV, MOD>: Likewise.
701 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
703 * collect2.c (main): Unlock the stdio streams.
704 * gcc.c (main): Likewise.
705 * gcov-dump.c (main): Likewise.
706 * gcov.c (main): Likewise.
707 * gen-protos.c (main): Likewise.
708 * gensupport.c (init_md_reader_args_cb): Likewise.
709 * protoize.c (main): Likewise.
710 * toplev.c (general_init): Likewise.
712 2005-04-24 Jakub Jelinek <jakub@redhat.com>
715 * cgraph.h (cgraph_local_info): Add vtable_method field.
716 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
717 and node is vtable_method, finalized and not reachable, don't do
720 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
722 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
724 * tree-ssa-pre.c (create_value_expr_from): Use
725 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
726 * tree-ssa-propagate.c (stmt_makes_single_load,
727 stmt_makes_single_store): Use REFERENCE_CLASS_P.
728 * tree-vect-transform.c (vect_is_simple_cond): Use
730 * tree-vrp.c (extract_range_from_assert,
731 build_assert_expr_for, fp_predicate, has_assert_expr): Use
734 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
735 of tpa_to_clear to VEC(int,heap). Update uses of
736 tpa_to_clear. Free tpa_to_clear at the end.
738 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
740 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
743 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
745 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
746 and gcc_unreachable as appropriate.
747 (num_insns_constant, output_vec_const_move,
748 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
749 rs6000_emit_set_const, rs6000_emit_move,
750 spe_build_register_parallel, function_arg,
751 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
752 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
753 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
754 rs6000_common_init_builtins, expand_block_clear,
755 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
756 extract_ME, rs6000_get_some_local_dynamic_name,
757 rs6000_output_function_entry, print_operand,
758 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
759 output_cbranch, output_e500_flip_gt_bit,
760 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
761 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
762 compute_save_world_info, rs6000_stack_info,
763 rs6000_emit_load_toc_table, rs6000_frame_related,
764 spe_synthesize_frame_save, rs6000_emit_epilogue,
765 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
766 output_function_profiler, rs6000_trampoline_size,
767 rs6000_initialize_trampoline, find_addr_reg,
768 rs6000_machopic_legitimize_pic_address,
769 rs6000_initial_elimination_offset,
770 rs6000_dbx_register_number): Likewise.
771 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
772 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
773 *movti_power, *movti_string, call, call_value, sibcall,
774 sibcall_value): Likewise.
775 * config/rs6000/spe.md (*movdf_e500_double,
776 *movv2si_internal): Likewise.
777 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
780 2005-04-24 Richard Henderson <rth@redhat.com>
783 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
784 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
785 Deny modes smaller than 4 bytes.
786 * config/i386/i386-protos.h: Update.
788 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
790 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
791 Switch h8300-*-rtems* to ELF.
793 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
795 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
797 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
799 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
801 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
804 * fold-const.c: Fold &a[i]-&a[j] to i-j.
806 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
808 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
809 definitions of ssa names in condition. Split recusive part to ...
810 (tree_simplify_using_condition_1): New function.
811 (expand_simple_operations): New function.
813 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
815 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
816 (find_interesting_uses_cond): Do not use integer_zerop and
817 integer_nonzerop to check for integer constants.
818 (set_use_iv_cost): Record the value field.
819 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
820 determine_use_iv_cost_outer): Set the value field of the cost pair.
821 (may_eliminate_iv): Do not return the comparison code.
822 (iv_elimination_compare): New function.
823 (determine_use_iv_cost_condition): Set the value field. Record
824 noneliminable invariants correctly.
825 (rewrite_use_compare, rewrite_use_outer): Use the value field.
827 2005-04-23 DJ Delorie <dj@redhat.com>
829 * diagnostic.c (warning): Accept parameter to classify warning option.
830 (warning0): New, for when a pointer to an error() like function is needed.
831 * errors.c (warning): Likewise.
832 * errors.h (warning, warning0): Adjust prototypes.
833 * toplev.h (warning, warning0): Likewise.
835 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
836 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
837 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
838 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
839 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
840 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
841 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
842 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
844 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
845 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
846 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
847 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
848 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
849 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
850 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
851 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
852 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
853 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
854 config/rs6000/aix52.h, config/rs6000/darwin.h,
855 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
856 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
857 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
858 config/stormy16/stormy16.c, config/v850/v850-c.c,
859 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
862 2005-04-23 Richard Henderson <rth@redhat.com>
865 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
866 performing some integral scalar simplifications.
868 2005-04-23 Richard Henderson <rth@redhat.com>
871 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
872 simplifying CONST_VECTOR.
874 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
876 * tree-ssa-live.c (live_worklist): Take a stack allocated on
877 heap as an argument. Update uses of stack.
878 (calculate_live_on_entry): Allocate stack on heap.
880 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
881 partition_link and tpa_nodes on heap.
883 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
884 (mark_stmt_necessary, propagate_necessity,
885 mark_really_necessary_kill_operand_phis): Update uses of
887 (tree_dce_init): Allocate worklist using VEC_alloc.
888 (tree_dce_done): Free worklist using VEC_free.
890 2005-04-23 Mike Stump <mrs@apple.com>
892 * config/darwin.c (machopic_indirection_name): Don't use
894 (darwin_emit_unwind_label): Use user_label_prefix instead of
897 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
899 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
901 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
903 * config.gcc <cris-*>: Specify .opt files.
904 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
905 config/cris/linux.opt: New files.
906 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
907 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
908 (TARGET_ELF): Override to 0.
909 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
910 -melinux-stacksize=N.
911 * config/cris/cris.c: (cris_handle_option): New function.
912 (TARGET_DEFAULT_TARGET_FLAGS): Override.
913 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
914 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
915 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
916 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
917 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
918 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
919 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
920 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
921 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
922 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
923 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
924 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
925 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
926 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
927 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
928 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
929 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
930 (TARGET_LINUX): Define 0.
931 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
932 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
933 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
934 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
935 (TARGET_LINUX): Override to 1.
936 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
938 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
940 * haifa-sched.c (schedule_block): Fix thinko in previous
941 assertification patch.
943 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
945 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
946 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
947 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
948 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
949 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
950 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
951 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
953 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
954 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
955 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
956 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
957 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
958 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
959 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
960 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
961 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
962 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
963 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
964 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
965 (SUBTARGET_OPTIONS): Delete.
966 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
967 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
969 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
970 (pa_cpu_string, pa_unix_string): Delete.
971 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
972 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
974 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
975 (pa_handle_option): New function.
976 (override_options): Remove handling of -march=, -mfixed-range=,
977 -mschedule= and -munix=.
978 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
979 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
980 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
981 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
982 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
983 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
984 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
986 * config/pa/pa.opt: New file.
987 * config/pa/pa-hpux.opt: New file.
988 * config/pa/pa-hpux1010.opt: New file.
989 * config/pa/pa-hpux1111.opt: New file.
990 * config/pa/pa64-hpux.opt: New file.
992 2005-04-22 David S. Miller <davem@davemloft.net>
994 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
995 integer when it's mode is VOIDmode not DImode.
997 2005-04-22 Geoffrey Keating <geoffk@apple.com>
999 * config/rs6000/rs6000.md (sync_add<mode>_internal,
1000 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
1001 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
1002 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
1003 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
1004 "bne- $-xxx" rather than local labels.
1005 (sync_lock_release<mode>): Add second operand.
1006 (lwsync): Use .long rather than a more meaningful opcode.
1007 * doc/md.texi (Standard Names): Add description of second
1008 parameter to sync_lock_test_and_set.
1010 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
1012 PR tree-optimization/21088
1013 * fold-const.c (fold_unary, fold_binary, fold_ternary):
1015 * tree-vrp.c (compare_values): Use fold_binary to compare
1016 pointers. Use boolean_type_node as the type of a comparison
1017 expression being folded.
1018 * tree.h: Add prototypes for fold_unary, fold_binary,
1021 * tree-ssa-dom.c: Fix formatting.
1023 2005-04-22 Diego Novillo <dnovillo@redhat.com>
1025 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
1026 * lambda-code.c (perfect_nestify): Mark virtual operands in
1027 the moved statement for renaming.
1028 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
1029 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1030 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
1031 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1032 * tree-flow.h (struct var_ann_d): Update comments.
1033 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
1034 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
1035 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
1036 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
1037 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
1038 debug_names_replaced_by): Remove declarations.
1039 (delete_update_ssa, get_current_def, set_current_def): Declare.
1040 (rewrite_into_loop_closed_ssa): Add new argument. Update
1042 * tree-into-ssa.c: Include params.h.
1043 (old_virtual_ssa_names): Remove. Update all users.
1044 (need_to_replace_names_p): Remove. Update all users.
1045 (struct update_ssa_stats_d): Declare.
1046 (update_ssa_stats): New local.
1047 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
1048 dump_tree_ssa_stats, debug_tree_ssa_stats,
1049 dump_update_ssa, debug_update_ssa,
1050 dump_names_replaced_by, debug_names_replaced_by): Declare.
1051 (get_current_def, set current_def): Make extern.
1052 (is_old_name, is_new_name): Protect against references
1053 past the end of the sets.
1054 (add_new_name_mapping): Assert that OLD and NEW are
1055 different SSA names for the same symbol.
1056 When adding a virtual mapping, update stats for virtual
1058 (insert_phi_nodes_for): If UPDATE_P is true, create the
1059 LHS of the new PHI by duplicating SSA name VAR.
1060 (insert_phi_nodes_1): Remove. Update all users.
1061 (insert_phi_nodes): Remove second argument. Update all
1063 (maybe_replace_use, maybe_replace_def): New.
1064 (rewrite_update_stmt): Call them.
1065 (mark_def_interesting): Remove calls to is_gimple_reg.
1066 (prepare_phi_args_for_update): Remove. Update all users.
1067 (prepare_block_for_update): Only process virtual operands
1068 and GIMPLE registers in normal form.
1069 (prepare_use_sites_for): New.
1070 (prepare_names_to_update): Rename from prepare_def_sites.
1071 Call prepare_use_sites_for.
1072 (dump_update_ssa): Rename from dump_repl_tbl.
1074 Show statistics for virtual mapping heuristic.
1075 (debug_update_ssa): Rename from debug_debug_repl_tbl.
1076 (init_update_ssa): Initialize UPDATE_SSA_STATS.
1077 (delete_update_ssa): Make extern.
1078 (mark_set_for_renaming): If the set is empty, do nothing.
1079 (release_ssa_name_after_update_ssa): Update comment.
1080 (insert_updated_phi_nodes_for): Do not remove existing
1081 PHI nodes for symbols.
1082 (switch_virtuals_to_full_rewrite_p): New.
1083 (switch_virtuals_to_full_rewrite): New.
1084 (update_ssa): Call them.
1085 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
1086 for every statement before updating.
1087 If all the names in NEW_SSA_NAMES have been marked for
1088 removal, do nothing.
1089 Only start at the top of the CFG if there are symbols in
1091 (ssa_rewrite_finalize_block): Remove.
1092 (ssa_register_new_def): Remove.
1093 (ssa_rewrite_stmt): Remove.
1094 (ssa_rewrite_phi_arguments): Remove.
1095 (ssa_rewrite_initialize_block): Remove.
1096 (ssa_mark_def_sites): Remove.
1097 (ssa_mark_def_sites_initialize_block): Remove.
1098 (ssa_mark_phi_uses): Remove.
1099 (rewrite_ssa_into_ssa): Remove.
1100 * tree-phinodes.c (find_phi_node_for): Remove.
1101 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1103 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
1104 Remove calls to verify_dominators and
1105 verify_loop_structure.
1106 (tree_unswitch_single_loop): Call update_ssa.
1107 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
1110 (delete_tree_ssa): Assert that need_ssa_update_p returns
1112 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
1113 * tree-vectorizer.c (allocate_new_names, rename_def_op,
1114 free_new_names): Remove. Update all users.
1115 (rename_use_op): Call get_current_def.
1116 (rename_variables_in_bb): Do not handle any real or
1118 (slpeel_update_phis_for_duplicate_loop): Call
1119 get_current_def and set_current_def instead of using
1121 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
1122 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
1123 ssa_names_to_replace and delete_update_ssa.
1124 * doc/invoke.texi: Document --param min-virtual-mappings
1125 and --param virtual-mappings-ratio.
1127 2005-04-22 Diego Novillo <dnovillo@redhat.com>
1129 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
1130 for newly created PHI nodes.
1131 Call create_new_def_for for every new V_MAY_DEF and
1132 V_MUST_DEF on the copied statement.
1133 (struct ssa_name_map_entry): Remove.
1134 (ssa_name_map_entry_hash): Remove.
1135 (ssa_name_map_entry_eq): Remove.
1136 (allocate_ssa_names): Remove.
1137 (rewrite_to_new_ssa_names_def): Remove.
1138 (rewrite_to_new_ssa_names_use): Remove.
1139 (rewrite_to_new_ssa_names_bb): Remove.
1140 (rewrite_to_new_ssa_names): Remove.
1141 (tree_duplicate_sese_region): Remove variables ver,
1142 definitions, phi, ssa_name_map and bi.
1143 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
1145 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1146 update_ssa instead of rewrite_ssa_into_ssa.
1147 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
1149 (find_uses_to_rename_use): Add argument 'need_phis'.
1150 (find_uses_to_rename_stmt): Do not scan virtual operands.
1151 (find_uses_to_rename): Only scan PHI nodes for
1153 (rewrite_into_loop_closed_ssa): Call update_ssa.
1154 (check_loop_closed_ssa_use): Ignore virtual operands.
1155 (check_loop_closed_ssa_stmt): Likewise.
1156 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
1158 (rename_variables, set_phi_def_stmts): Remove.
1159 (tree_duplicate_loop_to_header_edge): Reformat comment.
1160 Remove variables BB, I and DEFINITIONS.
1161 Call need_ssa_update_p.
1163 (lv_adjust_loop_header_phi): Reformat comment.
1164 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
1165 (marked_for_rewrite_p, any_marked_for_rewrite_p,
1166 mark_for_rewrite, unmark_all_for_rewrite,
1167 marked_ssa_names): Remove. Update all users.
1168 (release_ssa_name): If VAR has been registered for SSA
1169 updating, do nothing.
1170 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
1171 (build_assert_expr_for): Call register_new_name_mapping.
1172 (insert_range_assertions): Update call to update_ssa.
1173 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
1174 marked_for_rewrite_p, any_marked_for_rewrite_p,
1175 marked_ssa_names): Remove.
1177 2005-04-22 Jeff Law <law@redhat.com>
1179 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
1180 (restore_currdefs_to_original_value): Likewise.
1181 (register_definitions_for_stmt): Likewise.
1182 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
1183 for each variable. Do not allocate/free block_defs_stack either.
1184 Do not iterate if we just thread jumps. Only iterate if the
1185 tree_cleanup_cfg does useful work (temporary).
1186 (dom_opt_initialize_block): No longer push a marker on
1188 (dom_opt_finalize_block): Removal call to restore currdefs.
1189 Relax restrictions for recording edge equivalences.
1190 (record_equivalences_from_phis): No longer need to track
1192 (optimize_stmt): Similarly.
1193 (thread_across_edge): Simplify by removing the requirement that
1194 statements in the block we are threading through must be nops.
1195 (initialize_hash_element): Handle GOTO_EXPR.
1197 2005-04-22 David S. Miller <davem@davemloft.net>
1199 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
1201 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
1202 fix check on CONST_DOUBLE mode. It should be VOIDmode
1203 when it is representing an integer.
1205 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1207 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
1208 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1209 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
1210 find_char_info_specifier_index,
1211 find_length_info_modifier_index): Likewise.
1212 * c-typeck.c (composite_type, pop_init_level): Likewise.
1213 * combine.c (cant_combine_insn_p, try_combine): Likewise.
1214 * cse.c (cse_insn): Likewise
1215 * dominance.c (calc_dfs_tree): Likewise
1216 dwarf2out.c (loc_descriptor_from_tree_1,
1217 add_abstract_origin_attribute, force_decl_die,
1218 force_type_die): Likewise
1219 emit-rtl.c (operand_subword_force): Likewise
1220 explow.c (hard_function_value): Likewise
1221 expmed.c (store_bit_field, expand_divmod,
1222 emit_store_flag_force): Likewise
1223 expr.c (emit_move_multi_word, store_expr,
1224 expand_expr_real_1): Likewise
1225 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
1226 output_operand): Likewise
1227 flow.c (recompute_reg_usage): Likewise
1228 * function.c (assign_stack_temp_for_type, assign_temp,
1229 handle_epilogue_set): Likewise
1230 * genextract.c (main): Likewise
1231 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
1232 gimplify_modify_expr_rhs, gimplify_expr): Likewise
1233 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
1234 ready_remove, rm_line_notes, rm_other_notes,
1235 schedule_block): Likewise
1236 mips-tfile.c (copy_object, out_of_bounds): Likewise
1238 2005-04-22 David Edelsohn <edelsohn@gnu.org>
1241 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
1242 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
1243 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
1244 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
1246 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
1248 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1250 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
1251 (gcc_tree_to_linear_expression): Convert to heap allocated
1253 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1254 lbv_to_gcc_expression, lle_to_gcc_expression,
1255 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1256 perfect_nestify): Likewise.
1257 lambda.h (gcc_loopnest_to_lambda_loopnest,
1258 lambda_loopnest_to_gcc_loopnest): Likewise.
1259 tree-loop-linear.c (linear_transform_loops): Likewise.
1261 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1263 * config/sparc/predicates.md (arith_double_operand): Use
1264 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
1265 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
1266 (DImode, DFmode constant splitters): Likewise. Remove code for
1267 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
1268 (logical constant splitters): Use const_int_operand predicate.
1269 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
1270 HOST_BITS_PER_WIDE_INT < 64.
1272 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1274 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
1275 gcc_unreachable as appropriate.
1276 (force_mode, emit_move_sequence, singlemove_string,
1277 output_move_double, output_fp_move_double, find_addr_reg,
1278 output_block_move, output_block_clear, output_and,
1279 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
1280 pa_adjust_cost, pa_issue_rate, print_operand,
1281 output_global_address, output_arg_descriptor, output_cbranch,
1282 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
1283 output_call): Likewise.
1284 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
1285 prefetch, prefetch_cc, prefetch_nocc): Likewise.
1287 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
1289 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
1290 _gcov_pow2_profiler and _gcov_one_value_profiler.
1291 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
1292 (GTFILES): Add $(srcdir)/tree-profile.c.
1293 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
1294 __gcov_one_value_profiler): Declare.
1295 * gimplify.c (force_gimple_operand): Check whether the statements
1296 should be produced in ssa form.
1297 (force_gimple_operand_bsi): New function.
1298 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
1299 __gcov_one_value_profiler): New functions.
1300 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
1301 the profiled value is a power of two or not.
1302 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
1303 * tree-flow.h (in_ssa_p): Declare.
1304 (force_gimple_operand_bsi): Declare.
1305 * tree-into-ssa.c (in_ssa_p): New variable.
1306 (rewrite_into_ssa): Set in_ssa_p.
1307 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
1308 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
1309 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
1310 tree_one_value_profiler_fn): New variables.
1311 (tree_init_edge_profiler): Initialize the profiler function decls.
1312 (tree_gen_edge_profiler): Use global gcov_type_node.
1313 (prepare_instrumented_value): New function.
1314 (tree_gen_interval_profiler, tree_gen_interval_profiler,
1315 tree_gen_one_value_profiler): Call the library functions instead of
1316 creating instrumentation code.
1317 * tree.c (build_fn_decl): New function.
1318 * tree.h (build_fn_decl): Declare.
1319 * value-prof.c (rtl_divmod_values_to_profile,
1320 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
1321 tree_mod_pow2_value_transform, tree_find_values_to_profile):
1322 Do not handle may_be_other and precise values of exponents at pow2
1324 (tree_mod_subtract_transform): Reflect that value field of
1325 histogram has changed meaning.
1326 (tree_divmod_values_to_profile): Record the values correctly.
1327 (tree_values_to_profile): Update comment.
1328 * value-prof.h (struct histogram_value_t): Remove pow2 data.
1330 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
1332 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
1335 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1337 * config/i386/i386.md (length_immediate): Use gcc_assert or
1338 gcc_unreachable, as appropriate.
1339 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
1340 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
1341 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
1342 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
1343 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1344 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
1345 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
1346 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
1347 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
1348 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
1349 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
1350 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1351 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
1352 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
1353 *prefetch_sse_rex): Likewise.
1354 * config/i386/predicates.md (x86_64_immediate_operand,
1355 x86_64_zext_immediate_operand, symbolic_operand,
1356 no_seg_address_operand, aligned_operand,
1357 memory_displacement_operand): Likewise.
1358 * config/i386/sse.md (*mov<mode>_internal,
1359 *movv2df_internal): Likewise.
1361 2005-04-22 Jan Hubicka <jh@suse.cz>
1363 * Makefile.in (ipa.o, ipa-inline.o): New files.
1364 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
1365 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
1366 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
1367 * cgraphunit.c (cgraph_default_inline_p,
1368 cgraph_decide_inlining_incrementally, ncalls_inlined,
1369 nfunctions_inlined, initial_insns, overall_insns,
1370 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
1371 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1372 cgraph_mark_inline, cgraph_check_inline_limits,
1373 cgraph_default_inline_p, cgraph_recursive_inlining_p,
1374 update_callee_keys, lookup_recursive_calls,
1375 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
1376 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
1377 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
1378 pass_ipa_inline): Move to ipa-inline.c
1379 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
1381 * ipa-inline.c: New file.
1383 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1385 * doc/invoke.texi (SPARC options): Document that -mapp-regs
1386 is turned off by default on Solaris.
1388 2005-04-21 Roger Sayle <roger@eyesopen.com>
1390 * c-common.h (objc_build_method_signature): Update prototype.
1391 * stub-objc.c (objc_build_method_signature): Update the stub
1392 implementation to accept and ignore additional parameter.
1393 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
1394 the value of ellipsis to objc_build_method_signature instead
1395 of setting TREE_OVERFLOW on the parms TREE_LIST node.
1397 2005-04-21 Geoffrey Keating <geoffk@apple.com>
1399 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
1400 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
1401 gen_rtx_* not gen_rtx_fmt_*.
1402 (rs6000_emit_vector_select): Likewise.
1403 (rs6000_emit_sync): New.
1404 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
1405 (larx, stcx, cmp): New mode substitutions.
1406 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
1407 UNSPEC_ISYNC): New constants.
1408 (rlwinm): Give name.
1409 (memory_barrier, isync, lwsync): New insns.
1410 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
1411 (sync_lock_release<mode>): New expander.
1412 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
1413 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
1414 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
1415 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
1416 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
1417 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
1418 (sync_add<mode>_internal, sync_addshort_internal,
1419 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
1420 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
1421 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
1423 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
1424 is the memory before, not after, the operation. Clarify
1425 barrier requirements.
1427 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1429 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
1430 * lambda.h (lambda_vector_min_nz): Likewise.
1431 * langhooks.h (struct lang_hooks_for_types,
1432 struct lang_hooks): Likewise.
1433 * output.h (assemble_integer, this_is_asm_operands): Likewise.
1436 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1438 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
1439 comments to avoid 'abort'. Use gcc_assert as necessary.
1440 * opts.c (common_handle_option): Likewise.
1441 * pretty-print.c (pp_base_format_text): Likewise.
1442 * print-rtl.c (print_rtx): Likewise.
1443 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
1444 * regmove.c (try_auto_increment): Likewise.
1445 * reload.c (find_valid_class, find_reloads_toplev,
1446 find_equiv_reg): Likewise.
1447 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
1448 merge_assigned_reloads): Likewise.
1449 * tree-inline.c (inline_forbidden_p_1,
1450 estimate_num_insns_1): Likewise.
1451 * tree-optimize.c (execute_todo): Likewise.
1452 * tree-outof-ssa.c (eliminate_phi): Likewise.
1453 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
1454 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
1455 * tree-ssa-operands.c (parse_ssa_operands,
1456 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
1457 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
1458 * tree-ssanames.c (release_ssa_name): Likewise.
1459 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
1460 walk_tree): Likewise.
1462 * tree-ssa-operands.c (verify_abort): Fold into ..
1463 (verify_imm_links): ... here.
1465 2005-04-21 Richard Henderson <rth@redhat.com>
1467 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1468 on non-memory operand for previous inversion.
1470 2005-04-21 Devang Patel <dpatel@apple.com>
1472 PR optimization/20994
1473 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1474 x = !(a == b) : p , q;.
1475 (pass_if_conversion): Verify stmts and flow.
1477 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1479 * optabs.c (gen_conditional_trap): Restore #define.
1481 * alias.c (true_dependence): Remove 'abort' from comments. Use
1482 gcc_assert and gcc_unreachable as appropriate.
1483 (canon_true_dependence): Likewise.
1484 * bb-reorder.c (connect_traces): Likewise.
1485 * c-common.c (c_add_case_label): Likewise.
1486 * c-decl.c (finish_function): Likewise.
1487 * caller-save.c (insert_restore, insert_save): Likewise.
1488 * cfg.c (update_bb_profile_for_threading): Likewise.
1489 * cfganal.c (flow_active_insn_p): Likewise.
1490 * cfgexpand.c (add_reg_br_prob_note): Likewise.
1491 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1492 cfg_layout_merge_blocks): Likewise.
1493 * ifcvt.c (cond_exec_process_insns, merge_if_block,
1494 find_if_block): Likewise.
1495 * integrate.c (allocate_initial_values): Likewise.
1496 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1497 swap_condition, unsigned_condition, signed_condition,
1498 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1499 reg_or_subregno): Likewise.
1500 * lambda-code.c (lambda_compute_auxillary_space,
1501 lambda_transform_legal_p): Likewise.
1502 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1503 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1504 lhd_incomplete_type_error, lhd_expand_expr,
1505 lhd_types_compatible_p, lhd_tree_size): Likewise.
1506 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1507 * local-alloc.c (update_equiv_regs): Likewise.
1508 * loop-unroll.c (peel_loop_completely
1509 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1510 peel_loop_simple, unroll_loop_stupid,
1511 analyze_iv_to_split_insn): Likewise.
1512 * loop.c (gen_prefetch, find_and_verify_loops,
1513 basic_induction_var): Likewise.
1514 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1515 * value-prof.c (tree_find_values_to_profile): Likewise.
1516 * varasm.c (named_section, default_assemble_integer,
1517 decode_addr_const): Likewise.
1519 2005-04-21 Alan Modra <amodra@bigpond.net.au>
1520 Fariborz Jahanian <fjahanian@apple.com>
1522 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1523 portion of argument passed in fpr.
1524 * expr.c (emit_push_insn): Fix computation of 'offset' used to
1525 decide on partial argument save on stack.
1527 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1529 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1532 2005-04-21 Jan Hubicka <jh@suse.cz>
1534 * cgraphunit.c: Include tree-pass.h
1535 (cgraph_decide_recursive_inlining,
1536 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1537 cgraph_decide_inlining): Dump goes to dump_file.
1538 (cgraph_optimize): Call ipa passes instead of inliner.
1539 (cgraph_gate_inlining, pass_ipa_inline): New.
1540 * tree-optimize.c (all_ipa_passes): New static variable.
1541 (register_one_dump_file): Dead with IPA passes.
1542 (register_dump_files): Likewise.
1543 (init_tree_optimization_passes): Initialize IPA passes.
1544 (execute_todo): Do cgraph dump when asked to, do not dump function body
1546 * tree-pass.h (TODO_dump_cgraph): New macro.
1547 (ipa_passes): Declare.
1548 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1550 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1552 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1553 gcc_assert instead of abort.
1554 (classify_argument, examine_argument, construct_container,
1555 contains_128bit_aligned_vector_p, ix86_check_movabs,
1556 standard_80387_constant_opcode, standard_80387_constant_rtx,
1557 ix86_initial_elimination_offset, ix86_compute_frame_layout,
1558 pro_epilogue_adjust_stack, ix86_expand_epilogue,
1559 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1560 legitimize_tls_address, output_pic_addr_const,
1561 i386_output_dwarf_dtprel, put_condition_code, print_reg,
1562 get_some_local_dynamic_name, print_operand, print_operand_address,
1563 output_387_binary_op, emit_i387_cw_initialization,
1564 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1565 ix86_expand_clear, ix86_expand_binary_operator,
1566 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1567 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1568 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1569 ix86_expand_branch, ix86_expand_setcc,
1570 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1571 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1572 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1573 memory_address_length, ix86_attr_length_immediate_default,
1574 ix86_attr_length_address_default, ix86_agi_dependant,
1575 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1576 ix86_expand_binop_builtin, ix86_force_to_memory,
1577 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1578 x86_emit_floatuns): Likewise.
1579 * config/i386/netware.c (gen_regparm_prefix,
1580 i386_nlm_strip_name_encoding): Likewise.
1581 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1583 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1585 * optabs.c (gen_condiational_trap): Remove #define.
1586 (add_equal_note): Assertify. Remove explicit indirection from
1587 call via function pointer.
1588 (expand_ternary_op, expand_simple_binop, expand_binop,
1589 expand_twoval_unop, expand_twoval_binop,
1590 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1591 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
1592 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1593 prepare_float_lib_cmp, emit_conditional_move,
1594 emit_conditional_add, gen_add2_insn, gen_add3_insn,
1595 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1596 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1597 vector_compare_rtx, expand_vec_cond_expr): Likewise.
1599 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1601 * vec.h: Update API to separate allocation mechanism from type.
1602 (VEC_safe_grow): New.
1603 * vec.c (calculate_allocation): New.
1604 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1605 (vec_gc_free, vec_heap_free): Remove.
1606 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
1608 (mangle_macro_name): New.
1609 (struct macro_def): New.
1610 (struct macro): Add multiple argument values.
1611 (macro_expans_end): New.
1612 (push_macro_expansion): Chain on new macro. Process multiple
1613 args, create follow on expansion. Return follow on argument.
1614 (macro_input): Deal with multiple arguments.
1616 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1617 (struct tree_binfo): Adjust.
1618 * basic-block.h: Define VEC(edge,gc).
1619 (struct edge_def): Adjust.
1620 (struct basic_block_def, struct edge_iterator): Likewise.
1621 (ei_container, ei_start_1, ei_last_1): Likewise.
1622 * cfg.c (connect_src, connect_dest): Likewise.
1623 * cfgrtl.c (force_nonfallthru_and_redirect)
1624 * dbxout.c (dbxout_type)
1625 * dwarf2out.c (gen_member_die)
1626 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1627 (gcc_tree_to_linear_expression): Adjust.
1628 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1629 lbv_to_gcc_expression, lle_to_gcc_expression,
1630 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1631 perfect_nestify): Likewise.
1632 * lambda.h (gcc_loopnest_to_lambda_loopnest,
1633 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1634 * profile.c (instrument_values): Adjust.
1635 * tree-cfg.c (modified_noreturn_calls): Adjust.
1636 (remove_fallthru_edge): Likewise.
1637 * tree-dump.c (dequeue_and_dump): Adjust.
1638 * tree-flow-inline.h (mark_stmt_modified): Adjust.
1639 * tree-flow.h (modified_noreturn_calls): Adjust.
1640 (tree_on_heap): Remove. (yay!)
1641 (register_new_def): Adjust.
1642 * tree-into-ssa.c: Define VEC(int,heap).
1643 (block_defs_stack): Adjust.
1644 (find_idf, insert_phi_nodes, register_new_def,
1645 rewrite_initialize_block, rewrite_finalize_block,
1646 register_new_update_single, rewrite_update_init_block,
1647 rewrite_update_fini_block, rewrite_blocks,
1648 ssa_rewrite_finalize_block, ssa_register_new_def,
1649 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1650 * tree-loop-linear.c (linear_transform_loops): Adjust.
1651 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1652 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1653 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1654 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1655 vrp_variables_stack): Adjust declarations.
1656 (tree_ssa_dominator_optimize): Adjust.
1657 (dom_opt_initialize_block, remove_local_expressions_from_table,
1658 restore_nonzero_vars_to_original_value,
1659 restore_vars_to_original_value,
1660 restore_currdefs_to_original_value, dom_opt_finalize_block,
1661 record_var_is_nonzero, record_cond, record_const_or_copy_1,
1662 optimize_stmt, update_rhs_and_lookup_avail_expr,
1663 lookup_avail_expr, record_range): Likewise.
1664 * tree-ssa-pre.c: Define VEC(basic_block,heap).
1665 (compute_antic_aux): Adjust.
1666 (inserted_exprs, create_expression_by_pieces,
1667 insert_into_preds_of_block, eliminate, mark_operand_necessary,
1668 remove_dead_inserted_code, fini_pre): Likewise.
1669 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1670 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
1671 ssa_prop_init): Likewise.
1672 * tree-ssa.c: Define VEC(bitmap,heap).
1673 (verify_name_tags): Adjust.
1674 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1675 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1676 tree_divmod_values_to_profile, tree_find_values_to_profile,
1677 value_profile_transformations): Likewise.
1678 * value-prof.h: Define VEC(histogram_value,heap).
1679 * varasm.c: Remove alias_pair pointer typedef, define
1681 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1683 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1684 not a pointer to it. Create an object vector.
1685 (extern_symbols): Turn into an object vector.
1686 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1688 2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
1691 * Makefile.in (tree-chrec.o): Depend on params.h.
1692 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1694 * tree-chrec.c: Depend on params.h. Replace build with buildN,
1695 and fold build with fold_buildN.
1696 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1697 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1698 (tree_contains_chrecs): Compute an estimation of the size of the
1700 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1701 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1702 * tree-scalar-evolution.c (simple_iv): Ditto.
1703 * doc/invoke.texi (scev-max-expr-size): Documented.
1705 2005-04-21 Richard Sandiford <rsandifo@redhat.com>
1707 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1708 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1709 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1710 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1711 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1712 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1713 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1714 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1715 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1716 (darwin_fix_and_continue_switch): Delete.
1717 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1718 (SUBTARGET_SWITCHES): Delete.
1719 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1720 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1721 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1722 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1723 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1724 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1725 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1726 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1727 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1728 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1729 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1730 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1731 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1732 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1733 (TARGET_64BIT): Undef before redefining.
1734 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1735 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1736 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1737 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1738 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1739 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1740 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1741 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1742 (ix86_debug_arg_string, ix86_debug_addr_string)
1743 (ix86_align_loops_string, ix86_align_jumps_string)
1744 (ix86_align_funcs_string): Delete.
1745 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1746 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1747 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1748 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1749 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1750 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1751 (SUBTARGET_SWITCHES): Delete.
1752 * config/i386/i386.c (ix86_debug_arg_string): Delete.
1753 (ix86_debug_addr_string): Delete.
1754 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1755 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1756 (ix86_align_loops_string, ix86_align_jumps_string)
1757 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1758 (ix86_align_funcs_string): Make static.
1759 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1760 (ix86_handle_option): New function.
1761 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1762 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1763 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1764 of darwin_fix_and_continue_switch.
1765 (darwin_one_byte_bool): Delete.
1766 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1767 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1768 to darwin_one_byte_bool.
1769 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1770 * config/i386/djgpp.opt, config/i386/i386.opt,
1771 * config/i386/sco5.opt: New files.
1773 2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1775 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1776 fp_zero_operand, fp_register_operand, intreg_operand,
1777 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1778 call_operand, call_operand_address, tgd_symbolic_operand,
1779 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1780 symbolic_operand, symbolic_memory_operand, label_ref_operand,
1781 sp64_medium_pic_operand, data_segment_operand,
1782 text_segment_operand, splittable_symbolic_memory_operand,
1783 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1784 eq_or_neq, normal_comp_operator, noov_compare_op,
1785 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1786 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1787 const64_operand, const64_high_operand, arith11_operand,
1788 arith10_operand, arith_double_operand, arith_double_4096_operand,
1789 arith_double_add_operand, arith11_double_operand,
1790 arith10_double_operand, small_int, small_int_or_double,
1791 uns_small_int, uns_arith_operand, clobbered_register,
1792 input_operand, compare_operand): Delete.
1793 (sparc_emit_set_const32): Use predicates in assertion. Remove special
1794 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1795 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1796 (GEN_HIGHINT64, GEN_INT64): Delete.
1797 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1798 gen_safe_XOR64): Adjust for above deletion.
1799 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1800 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1801 (legitimate_constant_p): Use const_zero_operand instead.
1802 (sparc_extra_constraint_check): Likewise.
1803 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1804 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1805 (PREDICATE_CODES): Delete.
1806 * config/sparc/sparc.md: Include predicates.md.
1807 (All patterns): Adjust for new predicate names.
1808 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1809 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1810 (movdi): Use general_operand predicate.
1811 (movdi_sp64_dbl): Delete.
1812 (movdi_const64_special): Add 'N' constraint.
1813 (movdicc): Use arith10_operand predicate.
1814 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1815 (movdi_cc_reg_sp64): Use arith10_operand predicate.
1816 (movdi_cc_reg_sp64_trunc): Delete.
1817 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1818 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1819 (subdi3_sp32): Delete.
1820 (subdi3_insn_sp32): Change to define_insn_and_split.
1821 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1822 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1823 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1824 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1825 small_int_operand predicate.
1826 (divdi3, udivdi3): Use arith_operand predicate.
1827 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1828 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1829 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1830 (xordi3_sp64_dbl): Delete.
1831 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1832 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1833 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1834 cmp_ccx_set_not): Use arith_operand predicate.
1835 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1836 * config/sparc/predicates.md: New file.
1838 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1840 PR tree-optimization/14846
1841 * fold-const.c (fold_single_bit_test_into_sign_test): New,
1843 (fold_single_bit_test): ... here.
1844 (fold_binary): Call fold_single_bit_test_into_sign_test
1845 instead of fold_single_bit_test.
1847 2005-04-20 James E Wilson <wilson@specifixinc.com>
1850 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1851 is another declaration.
1853 2005-04-21 Hans-Peter Nilsson <hp@axis.com>
1855 * config/cris/predicates.md: New file.
1856 * config/cris/cris-protos.h (cris_store_multiple_op_p)
1857 (cris_movem_load_rest_p): Declare.
1858 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1859 (cris_movem_load_rest_p): Ditto. Globalize.
1860 (cris_bdap_operand, cris_bdap_biap_operand,
1861 cris_orthogonal_operator, cris_commutative_orth_op,
1862 cris_operand_extend_operator,
1863 cris_additive_operand_extend_operator, cris_extend_operator,
1864 cris_plus_or_bound_operator, cris_mem_op,
1865 cris_general_operand_or_symbol,
1866 cris_general_operand_or_gotless_symbol,
1867 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1868 cris_load_multiple_op): Remove predicate functions.
1869 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1870 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1871 * config/cris/cris.h (PREDICATE_CODES): Don't define.
1872 * config/cris/cris.md: Include predicates.md.
1873 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1875 2005-04-20 Ian Lance Taylor <ian@airs.com>
1877 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1878 * c-common.h (STMT_EXPR_STMT): Don't define.
1879 (STMT_EXPR_NO_SCOPE): Don't define.
1880 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1881 * c-pretty-print.c (pp_c_primary_expression): Likewise.
1882 (pp_c_expression): Likewise.
1884 2005-04-20 Richard Henderson <rth@redhat.com>
1887 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1889 2005-04-20 Jeff Law <law@redhat.com>
1891 * reload1.c (reload): Ignore equivalences between pseudos and
1894 2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
1897 * c-tree.h (struct c_label_list): Update comment.
1898 (struct c_label_context): Rename to struct c_label_context_se.
1899 (label_context_stack): Rename to label_context_stack_se.
1900 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1901 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1902 c_end_vm_scope): New.
1903 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1904 * c-decl.c (pop_scope): Call c_end_vm_scope.
1905 (pushdecl): Call c_begin_vm_scope for variably modified
1907 (define_label): Check for jumping into scope of identifier with
1908 variably modified type. Push label on stack for those defined at
1909 current context of identifiers with variably modified type.
1910 (start_function): Create stack level for context of identifiers
1911 with variably modified type.
1912 (finish_function): Pop stack level for context of identifiers with
1913 variably modified type.
1914 * c-typeck.c (label_context_stack): Rename to
1915 label_context_stack_se.
1916 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1917 (c_finish_goto_label): Check for jumping into scope of identifier
1918 with variably modified type. Push label on stack for those jumped
1919 to from current context of identifiers with variably modified
1921 (struct c_switch): Add blocked_vm.
1922 (c_start_case): Initialize blocked_vm.
1923 (do_case): Check blocked_vm.
1924 (c_finish_case): Add comment.
1925 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1926 variable label_context_stack.
1928 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1930 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1931 conditional_replacement, value_replacement, abs_replacement,
1933 (replace_phi_edge_with_variable): Remove argument BB.
1934 (conditional_replacement, value_replacement,
1935 minmax_replacement, abs_replacement): Remove argument PHI_BB.
1936 Update a call to replace_phi_edge_with_variable.
1938 * tree-ssa-phiopt.c: Fix comments.
1940 2005-04-20 Michael Matz <matz@suse.de>
1943 * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1946 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1948 * tree-ssa-phiopt.c: Fix comment typos.
1950 PR tree-optimization/21116
1951 * tree-ssa-phiopt.c: Fix a typo.
1953 2005-04-19 Richard Henderson <rth@redhat.com>
1955 * builtins.c (expand_builtin_sync_operation): Revert last change.
1956 * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1958 (expand_compare_and_swap_loop): Likewise.
1959 (expand_sync_operation): Remove fallback from NAND to AND; invert
1960 memory operand when expanding from cmpxchg.
1961 (expand_sync_fetch_operation): Likewise.
1962 * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1965 * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1966 when implementing NAND. Fix double-add for AFTER.
1967 * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1968 (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1969 (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
1971 (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1974 * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1975 to return old memory value.
1976 (sync_compare_and_swap_cc<IMODE>): Likewise.
1978 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1979 return pre-reload. Don't consider output or anti dependencies.
1980 * config/ia64/sync.md (IMODE): New.
1981 (modesuffix): Add QI and HI.
1982 (memory_barrier): Simplify expansion.
1983 (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1984 (cmpxchg_acq_<IMODE>): Likewise.
1985 (sync_lock_test_and_set<IMODE>): Likewise.
1986 (sync_lock_release<IMODE>): Likewise.
1988 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1990 * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1993 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1995 * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
1997 2005-04-20 Michael Pogue <michael.pogue@sun.com>
1998 Joseph S. Myers <joseph@codesourcery.com>
2000 * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
2001 * c-typeck.c (build_c_cast): Check these options.
2002 * doc/invoke.texi: Document these options.
2004 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
2006 * tree-ssa-phiopt.c: Update a comment about the pass.
2008 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
2010 * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
2011 config/mcore/mcore.c: Fix comment typos.
2013 2005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
2015 * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
2016 * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
2018 2005-04-19 Paul Brook <paul@codesourcery.com>
2020 * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
2022 2005-04-19 Andrew Haley <aph@redhat.com>
2025 * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
2026 looking at a field's bitpos.
2028 2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2030 * system.h (fopen, fdopen, freopen): Define these to the unlocked
2031 libiberty functions.
2033 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
2035 PR tree-optimization/21096
2036 * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2038 2005-04-19 Alan Modra <amodra@bigpond.net.au>
2041 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
2042 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2044 2005-04-19 Alexandre Oliva <aoliva@redhat.com>
2046 * tree-cfg.c (dump_function_to_file): Use cfun info only if it
2047 refers to the function being dumped.
2049 2005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
2051 * varasm.c (assemble_start_function): Remove reset of in_section.
2053 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2055 PR tree-optimization/21085
2056 * fold-const (fold_binary): Don't change X % -C to X % C if C has
2059 2005-04-19 Ben Elliston <bje@au.ibm.com>
2061 * doc/invoke.texi (Optimize Options): Refer to the correct
2062 optimisation flag -ftree-dominator-opts, not -ftree-dom.
2064 2005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
2066 * config/rs6000/rs6000.c (machopic_output_stub): Increase
2067 alloca argument to be big enough.
2069 2005-04-18 Alexandre Oliva <aoliva@redhat.com>
2072 * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
2075 2005-04-18 Tom Tromey <tromey@redhat.com>
2077 * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
2080 2005-04-18 Richard Henderson <rth@redhat.com>
2082 * config/alpha/alpha.c (alpha_split_atomic_op): New.
2083 (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
2084 (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
2085 * config/alpha/alpha-protos.h: Update.
2086 * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
2087 (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
2088 (attr type): Add ld_l, st_c, mb.
2089 (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
2090 iornotsi3, xorsi_internal, xornotsi3): New.
2091 * config/alpha/ev4.md (ev4_ld): Add ld_l.
2092 (ev4_ist_c, ev4_mb): New.
2093 * config/alpha/ev5.md (ev5_st): Add st_c, mb.
2095 * config/alpha/ev6.md (ev6_ild): Add ld_l.
2096 (ev6_ist): Add st_c.
2098 * config/alpha/sync.md: New file.
2100 2005-04-18 Richard Henderson <rth@redhat.com>
2102 * builtins.c (expand_builtin_sync_operation): Fold nand to and
2105 * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2107 2005-04-18 Devang Patel <dpatel@apple.com>
2109 * config/rs6000/atlivec.md (mulv4si3): New pattern.
2111 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2113 PR tree-optimization/20922
2114 * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
2115 Fold X + c >= X and fold X - c <= X to true.
2117 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2119 * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
2121 (emergency_labeled_state_free): Likewise.
2123 2005-04-18 Nick Clifton <nickc@redhat.com>
2125 * config/h8300/h8300.md (jump): Remove prescan parameter from
2126 calls to final_scan_insn.
2128 * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
2129 parameter from calls to final_scan_insn.
2131 * config.gcc (m68hc12): Use the m68hc11.opt file for target
2133 (v850e, v850e1): Use the v850.opt file for target specific
2136 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
2138 PR tree-optimization/21001
2139 * tree-optimize.c (init_tree_optimization_passes): Move the
2140 first pass_forwprop immediately before pass_vrp.
2142 2005-04-17 Ian Lance Taylor <ian@airs.com>
2144 * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
2145 * c-common.c (c_sizeof_or_alignof_type): Change second parameter
2146 from enum tree_code op to bool is_sizeof.
2147 * c-common.h (c_sizeof_or_alignof_type): Update declaration.
2148 (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
2149 * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
2151 (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
2153 (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
2156 2005-04-17 Ian Lance Taylor <ian@airs.com>
2158 * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2160 2005-04-17 Richard Henderson <rth@redhat.com>
2162 * config/alpha/alpha.c (va_list_skip_additions): Only define if
2164 (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
2165 (alpha_stdarg_optimize_hook): Likewise. Allow for one more round
2166 of indirection through ssa names while looking for the gpr counter
2168 (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
2169 saved va_list_gpr_size and va_list_fpr_size.
2171 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2173 * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
2174 both pointers or both integers.
2176 * tree-vrp.c (maybe_add_assert_expr): Don't assert
2177 ASSERT_EXPRs for single-use variable.
2179 * tree-into-ssa.c: Fix a comment typo.
2181 2005-04-17 Richard Sandiford <rsandifo@redhat.com>
2183 * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
2184 -mipsN before forcing a default of -mips2.
2186 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2188 * predict.h (IS_TAKEN): Remove.
2189 * rtl.h (NOTE_PREDICTION): Likewise.
2191 * modulo-sched.c (CFG_HOOKS): Remove.
2193 * c-parser.c (N_C_TTYPES): Remove.
2195 * tree-flow-inline.h (get_stmt_operands): Remove.
2196 * lambda-code.c, tree-ssa-loop-unswitch.c,
2197 tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2198 tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
2199 tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
2200 calls to get_stmt_operands.
2201 * doc/tree-ssa.texi: Don't mention get_stmt_operands.
2203 2005-04-17 Richard Henderson <rth@redhat.com>
2206 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
2207 of CUMULATIVE_ARGS past the last named argument.
2208 (alpha_va_start): Expect pretend_args_size only if strictly less than
2211 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2214 * builtins.c (expand_builtin_strcat): Convert the result of
2215 strlen to the right type.
2216 * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
2217 avoid creating type mismatches.
2218 <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
2221 * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2223 2005-04-16 Richard Henderson <rth@redhat.com>
2226 * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
2227 Use the mode of boolean_type_node when the user doesn't provide one.
2228 * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2230 2005-04-16 Alexandre Oliva <aoliva@redhat.com>
2233 * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
2236 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
2239 2005-04-16 Roger Sayle <roger@eyesopen.com>
2240 Steven Bosscher <stevenb@suse.de>
2242 * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
2243 (fold_unary_to_constant): Likewise.
2245 2005-04-16 Kazu Hirata <kazu@cs.umass.edu>
2247 * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
2250 2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
2252 * doc/install.texi (Specific): Avoid using asterisks in @anchor
2253 names related to target triplets.
2254 Remove i?86-*-esix from platform directory.
2255 Remove powerpc-*-eabiaix from platform directory.
2257 2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
2260 * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
2261 falling through from SUBREG case to REG.
2263 2005-04-15 Roger Sayle <roger@eyesopen.com>
2265 * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
2266 (fold_binary): Update comment mentioning fold_relational_hi_lo.
2267 (fold_binary_to_constant): Simplify using fold_binary.
2268 (fold_unary_to_constant): Likewise, simplify using fold_unary.
2270 2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2272 * gthr-posix.c (pthread_cancel): Define.
2273 (pthread_mutexattr_init): Likewise.
2274 (pthread_mutexattr_settype): Likewise.
2275 (pthread_mutexattr_destroy): Likewise.
2277 2005-04-15 David S. Miller <davem@davemloft.net>
2280 * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2282 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2284 PR tree-optimization/21031
2285 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
2286 (forward_propagate_into_cond_1): Call it. Forward propagate
2287 integer-integer casts into COND_EXPRs.
2289 2005-04-15 Dave Korn <dave.korn@artimi.com>
2291 * gcc.c (default_compilers): Clarify obscure error message when
2292 reading from standard input.
2294 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2296 * basic-block.h (PROP_EQUAL_NOTES): Remove.
2297 * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
2299 * tree-ssa-alias.c (init_alias_info): Remove a call to
2302 2005-04-15 Andrew MacLeod <amacleod@redhat.com>
2304 * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
2305 of non-virtual PHI nodes like we use to.
2307 2005-05-15 Paolo Bonzini <bonzini@gnu.org>
2309 * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
2310 (attr_copy_rtx): Do not use it.
2312 2005-04-15 Andrew Macleod <amacleod@redhat.com>
2314 * doc/tree-ssa.texi: Grammer/abbreviation updates.
2316 2005-04-15 Diego Novillo <dnovillo@redhat.com>
2318 * tree-vect-transform.c (vectorizable_store): Mark necessary
2319 objects in the vectorized store needing renaming. Update the
2320 SSA graph for V_MAY_DEF operands in the original store.
2322 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2324 * tree-ssa-pre.c (compute_avail): It's okay to have
2325 TREE_INVARIANT's here, and value number the resulting expressions.
2326 (create_expression_by_pieces): Make sure operands that were
2327 min_invariant when we started, stay that way.
2329 2005-04-15 David Edelsohn <edelsohn@gnu.org>
2331 * doc/install.texi (*-ibm-aix*): Add comment about system limits.
2333 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2335 PR tree-optimization/20936.
2336 * tree-ssa-ccp.c (visit_assignment): Fix a typo.
2338 2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2340 * doc/invoke.texi: Fix typos.
2341 * doc/md.texi: Likewise.
2342 * doc/rtl.texi: Likewise.
2343 * doc/sourcebuild.texi: Likewise.
2344 * doc/tm.texi: Likewise.
2346 2005-04-15 Uros Bizjak <uros@kss-loka.si>
2348 PR tree-optimization/21004
2349 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
2350 and floorl in c99 mode only.
2351 * builtins.c (expand_builtin_int_roundingfn): Assert that
2352 fallback_fndecl is not NULL_TREE.
2354 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2356 * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
2357 * basic-block.h: Update the prototype for
2358 purge_all_dead_edges.
2359 * cfgexpand.c (tree_expand_cfg): Update a call to
2360 purge_all_dead_edges.
2361 * combine.c (combine_instructions): Likewise.
2362 * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
2363 rest_of_handle_cse2, rest_of_handle_gcse,
2364 rest_of_handle_postreload): likewise.
2366 2005-04-15 Alexandre Oliva <aoliva@redhat.com>
2369 * gimplify.c (gimplify_addr_expr): Compensate for removal of
2370 e.g. cv-qualification conversions.
2372 2005-04-14 Mike Stump <mrs@apple.com>
2374 * config/darwin-c.c (framework_construct_pathname): We must
2375 find all headers of a framework in the first instance of it
2376 found in the seach path.
2378 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2380 PR tree-optimization/21021
2381 * tree-vrp.c (compare_values): Work around a bug in the front
2382 end that produces a comparison of mismatched types.
2384 2004-04-14 Richard Henderson <rth@redhat.com>
2386 * config/ia64/ia64.h (enum fetchop_code): Remove.
2387 (enum ia64_builtins): Move ...
2388 * config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
2389 members except BSP and FLUSHRS.
2390 (ia64_init_builtins): Remove __sync builtins.
2391 (ia64_expand_builtin): Likewise.
2392 (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
2393 (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
2394 (ia64_expand_lock_release): Remove.
2395 * config/ia64/ia64.md (mf): Move to sync.md.
2396 (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
2397 cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
2398 * config/ia64/sync.md: New file.
2399 (memory_barrier): Rename from mf.
2400 (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
2401 (cmpxchg_acq_<I48MODE>): Likewise.
2402 (sync_lock_test_and_set<I48MODE>): Likewise.
2404 * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
2405 to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
2407 2004-04-14 Richard Henderson <rth@redhat.com>
2409 * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
2410 (ix86_compare_emitted): New.
2411 (ix86_expand_compare): Use ix86_compare_emitted if set.
2412 (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
2413 and ix86_compare_op0 are set.
2414 * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
2415 (TARGET_CMPXCHG, TARGET_XADD): New.
2416 (ix86_compare_emitted): Declare.
2417 * config/i386/i386.md: Include sync.md
2418 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
2419 (UNSPECV_XCHG, UNSPECV_LOCK): New.
2420 * config/i386/sync.md: New file.
2422 2004-04-14 Richard Henderson <rth@redhat.com>
2425 * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
2426 BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
2427 BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
2428 BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
2429 BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
2430 BT_FN_I8_VPTR_I8_I8): New.
2431 * builtins.def (DEF_SYNC_BUILTIN): New.
2432 (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
2433 BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
2434 BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
2435 BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
2436 BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
2437 BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
2438 BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
2439 BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
2440 BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
2441 BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
2442 BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
2443 BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
2444 BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
2445 BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
2446 BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
2447 BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
2448 BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
2449 BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
2450 BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
2451 BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
2452 BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
2453 BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
2454 BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
2455 BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
2456 BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
2457 BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
2458 BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
2459 BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
2460 BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
2461 BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
2462 BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
2463 BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
2464 BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2465 BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2466 BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2467 BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2468 BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2469 BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2470 BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2471 BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2472 BUILT_IN_SYNCHRONIZE: New.
2473 * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2474 as a function. Accept __sync_ as a prefix as well.
2475 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2476 expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2477 expand_builtin_lock_release): New.
2478 (expand_builtin): Call them.
2479 * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2480 neither BOTH_P nor FALLBACK_P are defined.
2481 (builtin_type_for_size): New.
2482 (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2483 (resolve_overloaded_builtin): New.
2484 * c-common.h (resolve_overloaded_builtin): Declare.
2485 (builtin_type_for_size): Declare.
2486 * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2487 * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2488 sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2489 sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2490 sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2491 sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2492 sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2493 sync_compare_and_swap_cc, sync_lock_test_and_set,
2494 sync_lock_release): New.
2495 * optabs.h: Declare them.
2496 * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2497 expand_sync_operation, expand_sync_fetch_operation,
2498 expand_sync_lock_test_and_set): Declare.
2499 * genopinit.c (optabs): Add sync optabs.
2500 * optabs.c (init_optabs): Initialize sync optabs.
2501 (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2502 expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2503 expand_sync_operation, expand_sync_fetch_operation,
2504 expand_sync_lock_test_and_set): New.
2505 * doc/extend.texi (Atomic Builtins): New section
2506 * doc/md.texi (Standard Names): Add sync patterns.
2508 2005-04-14 Alexandre Oliva <aoliva@redhat.com>
2510 * tree-eh.c (lower_try_finally_copy): Generate new code in
2511 response to goto_queue entries as if the queue was sorted by
2512 index, not pointers.
2513 (lower_try_finally_switch): Likewise.
2515 2005-04-14 Richard Henderson <rth@redhat.com>
2517 * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2518 (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
2520 (ix86_expand_fp_movcc): Update to match.
2521 (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2522 * config/i386/i386-protos.h: Update.
2523 * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2524 (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2526 2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
2528 * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2531 2005-04-14 Julian Brown <julian@codesourcery.com>
2533 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2534 link failures on ppc64 Linux.
2536 2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
2538 * config.gcc: Set cpu_type for s390.
2540 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2542 Fix PR tree-optimization/20963
2543 * tree-ssa-pre.c (compute_avail): Remove special case for
2545 (create_expression_by_pieces): Add value numbers for forced out
2548 2005-04-14 Hans-Peter Nilsson <hp@axis.com>
2550 * config/cris/cris.md: Replace references to (reg:SI 16) with
2551 (reg:SI CRIS_SRP_REGNUM).
2553 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2555 PR tree-optimization/20657
2556 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2557 create an appropriate range from it.
2559 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2561 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2562 <UNSPEC_FIST_CEIL> case.
2564 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2565 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2566 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2567 to implement lfloor and llfloor built-ins as x87 intrinsic function.
2568 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2569 (lfloor<mode>2): New expanders.
2570 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2571 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2572 to implement lceil and llceil built-ins as x87 intrinsic function.
2573 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2574 (lceil<mode>2): New expanders.
2576 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2578 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2579 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2581 2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
2584 * config/s390/s390-modes.def: Define TFmode.
2586 2005-04-13 Richard Sandiford <rsandifo@redhat.com>
2588 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2589 (JUMP_TABLES_IN_TEXT_SECTION): Define.
2590 * config/mips/mips.c (mips16_insn_length): Remove reference to
2591 JUMP_TABLES_IN_TEXT_SECTION.
2593 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2595 * simplify-rtx.c (simplify_binary_operation_1): Return
2596 scalar or vector of constant 0, depending on the xor's
2599 2005-04-13 Dale Johannesen <dalej@apple.com>
2601 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
2602 (objc-act.o): Ditto.
2603 * objc/objc-act.c (objc_gimplify_expr): New.
2604 (objc_get_callee_fndecl): New.
2605 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
2606 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
2607 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
2609 2005-04-13 Devang Patel <dpatel@apple.com>
2611 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2614 2005-04-13 Hans-Peter Nilsson <hp@axis.com>
2616 CRIS prologue as RTL.
2617 * config/cris/cris-protos.h (cris_emit_movem_store)
2618 (cris_expand_prologue): Prototype.
2619 * config/cris/cris.c (struct machine_function): New member
2621 (cfa_label_num, cris_target_asm_function_prologue): Remove.
2622 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2623 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2624 (cris_load_multiple_op, cris_return_address_on_stack)
2625 (cris_return_address_on_stack_for_return): ISO-Cify.
2626 (cris_store_multiple_op): New predicate function.
2627 (cris_expand_prologue, cris_emit_movem_store): New functions.
2628 (cris_print_operand) <case 'O'>: Handle modifications other than
2630 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2631 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2632 (cris_gen_movem_load): Rearrange slightly to make local variable
2633 src a parameter, removing osrc.
2634 (cris_setup_incoming_varargs): Set machine_function member
2635 stdarg_regs to correspond to the number of registers that need to
2637 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2639 (PREDICATE_CODES): Add cris_store_multiple_op. Make
2640 cris_general_operand_or_gotless_symbol accept UNSPEC.
2641 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2642 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2643 ("*cris_store_multiple"): New pattern. Tweak common comment above
2644 this and "*cris_load_multiple".
2645 ("prologue"): New define_expand.
2647 * config/cris/cris.md ("epilogue"): Conditionalize on
2648 TARGET_PROLOGUE_EPILOGUE.
2650 2005-04-13 Steve Ellcey <sje@cup.hp.com>
2653 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2654 fpsr 0 instead of fpsr 1.
2655 (divsf3_internal_thr): Ditto.
2656 (divdf3_internal_lat): Ditto.
2657 (divdf3_internal_thr): Ditto.
2658 (divxf3_internal_lat): Ditto.
2659 (divxf3_internal_thr): Ditto.
2661 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2663 PR tree-optimization/20913
2664 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2666 PR tree-optimization/20702
2667 * tree-vrp.c (maybe_add_assert_expr): Recurse into
2668 dominator children that haven't been walked into.
2670 2005-04-13 Julian Brown <julian@codesourcery.com>
2672 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2673 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2676 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2678 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2679 config/i386/sse.md: Fix comment typos.
2681 * genattrtab.c (NULL_ATTR): Remove.
2682 * ifcvt.c (NULL_EDGE): Likewise.
2684 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2686 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2687 NOTE_PREDICT): Remove.
2689 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2691 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2692 * configure: Regenerate.
2693 * config.in: Likewise.
2694 * system.h: Declare vsnprintf if not already declared.
2696 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2698 * optc-gen.awk: Handle stand-alone Mask records.
2699 * opth-gen.awk: Likewise.
2700 * doc/options.texi (Option file format): Document them.
2701 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2702 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2703 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2704 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2705 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2706 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2707 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2708 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2709 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2710 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2711 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2712 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2713 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2714 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2715 TARGET_LONG_DOUBLE_128): Likewise.
2716 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2717 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2718 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2719 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2720 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2721 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2722 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2723 * config/sparc/sparc.c (fpu_option_set): New global.
2724 (sparc_handle_option): New function.
2725 (sparc_override_options): Test fpu_option_set.
2726 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2727 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2728 * config/sparc/sparc.opt: New file.
2729 * config/sparc/little-endian.opt: Likewise.
2730 * config/sparc/long-double-switch.opt: Likewise.
2732 2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
2734 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2735 (bfin_handle_options): Set it if -mshared-library-id= is seen.
2736 * config/bfin/bfin.opt (mshared-library-id=): Lose
2737 Var(bfin_lib_id_given).
2739 2005-04-13 Matt Thomas <matt@3am-software.com>
2741 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2744 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2746 * rtl.h (CLEAR_RTX_FLAGS): Remove.
2748 * cgraphunit.c (INSNS_PER_CALL): Remove.
2750 * tree-ssa-forwprop.c (vars,
2751 record_single_argument_cond_exprs,
2752 substitute_single_use_vars): Remove.
2753 (forward_propagate_into_cond_1, forward_propagate_into_cond):
2755 (tree_ssa_forward_propagate_single_use_vars): Call
2756 forward_propagate_into_cond for each COND_EXPR.
2758 * tree-inline.c (INSNS_PER_STMT): Remove.
2760 2005-04-12 Richard Henderson <rth@redhat.com>
2762 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2763 (ix86_expand_sse_fp_minmax): ... from ...
2764 (ix86_expand_fp_movcc): ... here.
2765 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2766 * config/i386/i386-protos.h: Update.
2767 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2768 (sse_setccsf, sse_setccdf): Allow before reload.
2769 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2770 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2771 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2772 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2773 (anddf3, nanddf3, iordf3, xordf3): New.
2775 2005-04-12 Jeff Law <law@redhat.com>
2777 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2778 (tree-ssa-uncprop.o): Add dependencies.
2779 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2780 * tree-flow.h (remove_useless_stmts): Remove prototype.
2781 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2782 remove_useless_stmts.
2783 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2784 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2785 * tree-pass.h (pass_uncprop): Declare.
2786 * tree-ssa-uncprop.c: New file.
2788 2005-04-12 James E. Wilson <wilson@specifixinc.com>
2791 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2793 2005-04-12 Caroline Tice <ctice@apple.com>
2795 Temporary fix for partitioning problems.
2796 * passes.c (rest_of_handle_final): Remove code that
2797 frees unlikely_text_section_name,
2798 * varasm.c (assemble_start_function): Test for partitioning
2799 flag before writing out section labels.
2800 (assemble_end_function): Test for partitioning flag before
2801 writing out section labels.
2803 2005-04-12 Steven Bosscher <stevenb@suse.de>
2804 Stuart Hastings <stuart@apple.com>
2805 Jan Hubicka <jh@suse.cz>
2807 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
2808 references to gt-tree-cfg.h.
2809 * basic-block.h (struct basic_block_def): Don't skip rbi
2810 for garbage collection.
2811 (struct reorder_block_def): Make GTY-able.
2812 (struct control_flow_graph): New structure.
2813 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2814 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2815 but instead defines to the control_flow_graph for cfun.
2816 (label_to_block_map): New define, points to the label map of
2817 the control_flow_graph for cfun.
2818 (n_edges_for_function, n_basic_blocks_for_function,
2819 last_basic_block_for_function, basic_block_info_for_function,
2820 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2821 basic_block_info_for_function, label_to_block_map_for_function):
2822 Counterparts for the above, taking a struct function as an extra
2824 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2825 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2826 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2827 (alloc_rbi_pool, free_rbi_pool): Remove.
2828 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2829 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2831 (cfg_layout_finalize) ... and don't free it here.
2832 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2834 * flow.c (free_basic_block_vars): Set label_to_block_map and
2835 n_edges to zero too.
2836 * function.h (struct function): Add cfg field.
2837 * function.c (allocate_struct_function): Allocate the cfg.
2838 * tree-cfg.c (label_to_block_map): Remove.
2839 (build_tree_cfg): Don't allocate the rbi pool here...
2840 (delete_tree_cfg_annotations): ...and don't free it here.
2841 Also don't nullify label_to_block_map for cfun.
2843 2005-04-12 Caroline Tice <ctice@apple.com>
2845 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2846 Revert my patch from April 9.
2847 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2848 (reorder_basic_blocks): Revert my patch from April 9.
2849 (insert_section_boundary_note): Revert my patch from April 9.
2850 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2851 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2852 (COLD_END_LABEL): Revert my patch from April 9.
2853 (cold_text_section_label): Revert my patch from April 9.
2854 (cold_end_label): Revert my patch from April 9.
2855 (dwarf2out_switch_text_section): Revert my patch from April 9.
2856 (output_aranges): Revert my patch from April 9.
2857 (output_ranges): Revert my patch from April 9.
2858 (output_line_info): Revert my patch from April 9.
2859 (add_location_or_const_value_attribute): Revert my patch from April 9.
2860 (dwarf2out_var_location): Revert my patch from April 9.
2861 (dwarf2out_init): Revert my patch from April 9.
2862 (dwarf2out_finish): Revert my patch from April 9.
2863 * function.h (struct function): Revert my patch from April 9.
2864 * opts.c (decode_options): Revert my patch from April 9.
2865 * output.h (unlikely_section_label, hot_section_label,
2866 hot_section_end_label, cold_section_end_label,
2867 unlikely_text_section_name): Revert my patch from April 9.
2868 * passes.c (rest_of_handle_final): Revert my patch from April 9.
2869 * varasm.c (unlikely_section_label, hot_section_label,
2870 hot_section_end_label, cold_section_end_label,
2871 unlikely_text_section_name): Revert my patch from April 9.
2872 (initialize_cold_section_name): Revert my patch from April 9.
2873 (unlikely_text_section): Revert my patch from April 9.
2874 (in_unlikely_text_section): Revert my patch from April 9.
2875 (named_section): Revert my patch from April 9.
2876 (function_section): Revert my patch from April 9.
2877 (current_function_section): Revert my patch from April 9.
2878 (assemble_start_function): Revert my patch from April 9.
2879 (assemble_end_function): Revert my patch from April 9.
2880 (default_section_type_flags_1): Revert my patch from April 9.
2882 2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2884 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2885 * config/sparc/sparc.md (untyped_call): Save the registers manually.
2887 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2889 2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
2892 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2893 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2895 2004-04-12 Richard Henderson <rth@redhat.com>
2897 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2898 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2899 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2900 (UNSPEC_*, UNSPECV_*): Renumber.
2902 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
2905 From Richard Henderson <rth@redhat.com>:
2906 * tree-mudflap.c (mf_build_check_statement_for): Correct block
2909 2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
2911 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2913 2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
2915 * config/bfin/bfin.c (bfin_library_id_string): Remove.
2916 (bfin_library_id): New variable.
2917 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2918 instead of bfin_library_id_string.
2919 (bfin_handle_option): New function.
2920 (override_options): Remove most code to deal with shared library IDs,
2921 just check they aren't used without -mid-shared-library.
2922 (TARGET_HANDLE_OPTION): Define.
2923 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2924 * config/bfin/bfin.opt (mshared-library-id=): New.
2926 2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
2928 * tree-vect-transform.c: Fix comment typos.
2930 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2932 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2933 split critical edges when not possible/profitable.
2935 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2937 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2938 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2939 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2940 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2941 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2942 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2943 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2944 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2946 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2947 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2948 * config/ns32k/ns32k.opt: New file.
2950 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2952 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2953 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2954 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2955 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2956 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2957 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2958 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2959 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2960 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2961 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2962 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2963 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2964 (MASK_COLDFIRE): Formatting fixes.
2965 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2966 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2967 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2968 "_current_shared_library_a5_offset_".
2969 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2970 (MASK_ALL_CPU_BITS): New macro.
2971 (m68k_handle_option): New function.
2972 (override_options): Remove handling of m68k_library_id_string.
2973 * config/m68k/m68k.opt: New file.
2974 * config/m68k/ieee.opt: New file.
2976 2005-04-11 Mark Mitchell <mark@codesourcery.com>
2978 * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2979 (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2980 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2981 (TARGET_CXX): Adjust accordingly.
2982 * target.h (struct gcc_target): Remove epxort_class_data. Add
2983 determine_class_data_visibility and class_data_always_comdat.
2984 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2985 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2986 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2987 * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2988 (arm_cxx_determine_class_data_visibility): New.
2989 (arm_cxx_class_data_always_comdat): Likewise.
2990 (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2991 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2992 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2993 * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2994 * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2997 2005-04-11 Devang Patel <dpatel@apple.com>
2999 * tree-data-ref.c (build_classic_dist_vector,
3000 compute_subscript_distance): Make externally visible.
3001 * tree-data-ref.h (build_classic_dist_vector,
3002 compute_subscript_distance): Same.
3003 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
3004 Check distance vector against vectorization factor.
3005 (vect_analyze_loop): Determine vectorizaion factor before
3006 analyzing data dependences.
3007 * tree-vectorizer.c (loops_num): Make it externally visible and
3009 * tree-vectorizer.c (vect_loops_num): ... new name.
3010 * tree-vectorizer.h (vect_loops_num): New.
3012 2005-04-11 Devang Patel <dpatel@apple.com>
3014 * tree-vect-analyze.c (vect_analyze_operations): Check
3015 vectorizable codition.
3016 * tree-vect-transform.c (vect_is_simple_cond): New function.
3017 (vectorizable_condition): New function.
3018 (vect_transform_stmt): Handle condition_vec_info_type.
3019 * tree-vectorizer.h (enum stmt_vec_info_type): Add
3020 condition_vec_info_type.
3021 (vectorizable_condition): New.
3023 2005-04-11 Geoffrey Keating <geoffk@apple.com>
3025 * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
3026 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
3027 * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
3029 * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
3030 (SUBTARGET_EXTRA_SPECS): Always 'i386'.
3032 * dwarf2out.c (output_line_info): Don't try to dereference
3033 a NULL current_function_decl.
3035 * config/t-slibgcc-darwin: Don't put shared libraries in
3036 directories other than $(slibdir).
3037 * config/rs6000/darwin.h: Find -m64 libgcc under the name the
3040 2005-04-11 Diego Novillo <dnovillo@redhat.com>
3042 PR tree-optimization/20933
3043 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
3044 logic to reject aliases between read-only and writable
3046 (may_alias_p): ... here.
3047 (get_tmt_for): Do not associate read-only tags to pointers
3048 whose pointed-to type is not read-only.
3049 * tree-ssa.c (verify_ssa): Check that memory stores have at
3050 least one V_MAY_DEF or V_MUST_DEF.
3052 2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3055 * configure.ac (gcc_UNLOCKED_FUNCS): New.
3056 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
3057 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
3058 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
3060 (fwrite_unlocked): Fix prototype.
3062 * configure, config.in: Regenerate.
3064 2005-04-11 David Edelsohn <edelsohn@gnu.org>
3066 * tree-ssa-loop-im.c: Include real.h.
3067 (determine_invariantness_stmt): If real division divisor is
3068 invariant and flag_unsafe_math_optimizations enabled, generate
3069 invariant reciprocal for hoisting.
3070 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
3072 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
3074 Fix PR tree-optimization/20926
3076 * tree-ssa-alias.c (add_type_alias): Handle subvars.
3078 2005-04-11 Devang Patel <dpatel@apple.com>
3080 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
3083 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
3085 * fold-const.c (fold_binary_op_with_conditional_arg):
3086 use fold_buildN instead of "fold (buildN" in some
3088 (fold_unary): Likewise.
3089 (fold_binary): Likewise.
3091 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
3093 Fix PR tree-optimization/20612
3094 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
3096 (perfect_nestify): preheaderbb is *not* part of loop of the
3099 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
3101 * tree-ssa-alias.c (may_alias_p): If the variable
3102 is a global variable and the pointer is parameter
3103 and -fargument-noalias-global is used, then
3104 the pointer cannot alias the variable.
3106 2005-04-11 James A. Morrison <phython@gcc.gnu.org>
3108 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
3109 * config/sparc/sparc.h: Likewise.
3110 * config/sparc/sparc.md: Likewise.
3112 2005-04-11 Kazu Hirata <kazu@cs.umass.edu>
3114 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
3116 * tree-vrp.c: Fix a comment typo.
3118 2005-04-11 Diego Novillo <dnovillo@redhat.com>
3120 PR tree-optimization/20920
3121 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
3122 SSA_NAME flows through an abnormal edge.
3123 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
3124 through abnormal edges.
3125 (maybe_add_assert_expr): Likewise.
3127 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
3129 * config/s390/s390.h (s390_tune_string, s390_arch_string)
3130 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
3131 (s390_stack_size_string, s390_stack_guard_string, target_flags)
3132 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
3133 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
3134 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
3135 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
3136 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
3137 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
3138 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3139 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3140 (TARGET_HANDLE_OPTION): Likewise.
3141 (s390_tune): Initialize to PROCESSOR_max.
3142 (s390_arch_string): Make static.
3143 (s390_tune_string, s390_warn_framesize_string): Delete.
3144 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
3145 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
3146 (s390_handle_arch_option, s390_handle_option): New functions.
3147 (override_options): Remove parsing of option strings.
3148 * config/s390/s390.opt: New file.
3150 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
3152 * tree-complex.c (expand_vector_operations): Call
3153 update_stmt_if_modified.
3155 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
3157 * tree-vect-analyze (vect_determine_vectorization_factor):
3158 Do not use GET_MODE_NUNITS.
3159 * tree-vect-transform.c (vect_get_vec_def_for_operand,
3160 (vectorizable_load, vect_transform_loop): Likewise.
3162 2005-04-11 Uros Bizjak <uros@kss-loka.si>
3164 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
3165 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
3166 * optabs.h (enum optab_index): Add new OTI_lceil.
3167 (lceil_optab): Define corresponding macro.
3168 * optabs.c (init_optabs): Initialize lceil_optab.
3169 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
3170 and lceildi2 patterns.
3171 * builtins.c (expand_builtin_int_roundingfn): Handle
3172 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
3173 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
3174 BUILT_IN_LLCEIL{,F,L}.
3175 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
3176 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
3177 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
3178 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
3179 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
3180 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
3181 into lceil built-in function and (long long int)ceil{,f,l} into
3182 llceil built-in function.
3183 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
3186 2005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3188 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
3191 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
3193 * config/arm/arm.c: Fix a comment typo.
3194 * doc/tree-ssa.texi: Fix a typo.
3196 2005-04-10 Steven Bosscher <stevenb@suse.de>
3198 * cselib.c (clear_table): Rename to cselib_clear_table.
3199 * cselib.h (cselib_clear_table): Add prototype.
3200 * gcse.c (gcse_main): Make 'f' argument unused.
3201 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
3202 of each basic block instead.
3203 (compute_sets, compute_hash_table_work): Likewise.
3204 (constprop_register): Change int 'alter_jumps' argument to bool.
3205 (do_local_cprop): Likewise.
3206 (local_cprop_pass): Likewise. Also walk basic blocks instead of
3207 the insn chain. Explicitly clear the cselib tables after finishing
3208 one basic block. Make sure there are no unterminated libcall blocks.
3209 Update compute_sets call.
3210 (cprop): Walk basic blocks instead of the insn chain.
3211 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
3213 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
3214 one_cprop_pass calls.
3216 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
3218 * combine.c (combine_simplify_rtx): Remove a transformation that
3219 relies on an invalid assumption about rtl sign-extension semantics.
3221 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
3223 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
3224 to build_int_cst_wide.
3226 2005-04-09 Alexandre Oliva <aoliva@redhat.com>
3229 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
3230 set the original address pseudo to the correct value before the
3231 original insn, if possible, and leave the insn alone, otherwise
3232 create a new pseudo, set it and replace it in the insn.
3233 * recog.c (validate_change_maybe_volatile): New.
3234 * recog.h (validate_change_maybe_volatile): Declare.
3236 2005-04-09 Caroline Tice <ctice@apple.com>
3238 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3239 Remove targetm.have_named_sections test.
3240 (fix_edges_for_rarely_executed_code): Likewise.
3241 (insert_section_boundary_note): Likewise.
3242 (reorder_basic_blocks): Check partitioning flag before calling
3243 verify_hot_cold_block_grouping.
3244 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3245 the function struct rather than global variables.
3246 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3247 (COLD_END_LABEL): Likewise
3248 (cold_text_section_label): New static global variable.
3249 (cold_end_label): Likewise.
3250 (dwarf2out_switch_text_section): Get hot/cold section labels from
3251 the function struct rather than global variables.
3252 (output_aranges): Use cold_text_section_label and cold_end_label;
3253 check partitioning flag before putting out delta.
3254 (output_ranges): Remove incorrect code attempting to use
3256 (output_line_info): Get cold section label from function struct.
3257 (add_location_or_const_value_attribute): Likewise.
3258 (get_subprogram_die): Get hot/cold section labels from function struct.
3259 (dwarf2out_var_location): Likewise.
3260 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3261 write out cold_text_section_label if partition flag is set.
3262 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3263 * function.h (struct function): Add new fields to point to hot/cold
3264 section labels: hot_section_label, cold_section_label,
3265 hot_section_end_label and cold_section_end_label; also add new field
3266 for cold text section name, unlikely_text_section_name.
3267 * opts.c (decode_options): Turn off partitioning flag if
3268 !targetm.have_named_sections.
3269 * output.h (hot_section_label): Remove.
3270 (hot_section_end_label): Remove.
3271 (cold_section_end_label): Remove.
3272 (unlikely_section_label): Remove.
3273 (unlikely_text_section_name): Remove.
3274 * passes.c (rest_of_handle_final): Remove code that frees
3275 unlikely_text_section_name.
3276 * varasm.c (unlikely_section_label): Remove.
3277 (hot_section_label): Remove.
3278 (hot_section_end_label): Remove.
3279 (cold_section_end_label): Remove.
3280 (unlikely_text_section_name): Remove.
3281 (initialize_cold_section_name): Modify to call
3282 targetm.strip_name_encoding; to store cold section name in current
3283 function struct, if it exists; and to only use the decl_section_name
3284 if flag_named_sections is true.
3285 (unlikely_text_section): Modify to get section name out of current
3286 function struct, if there is one; otherwise build it from
3287 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3288 (in_unlikely_text_section): Likewise.
3289 (named_section): Modify to get/put cold section name in current function
3290 struct, if there is one.
3291 (function_section): Change 'bool unlikely' to 'int reloc'; check
3292 targetm.have_named_sections before calling named_section.
3293 (current_function_section): Likewise.
3294 (assemble_start_function): Modify to get/put unlikely_text_section_name
3295 in current function struct; modify to get hot/cold section labels
3296 from function struct; initialize labels using
3297 ASM_GENERATE_INTERNAL_LABEL;
3298 test partitioning flag before writing out hot section label.
3299 (assemble_end_function): Test partitioning flag before writing out
3300 hot/cold section labels.
3301 (default_section_type_flags_1): Modify to use array instead of
3302 char* for unlikely_text_section_name; set flags correctly for
3303 cold text section if there is not a current function decl.
3305 2005-04-09 Jakub Jelinek <jakub@redhat.com>
3307 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3308 and TI_VA_LIST_FPR_COUNTER_FIELD.
3309 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3310 * tree-pass.h (pass_stdarg): Add.
3311 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3312 * tree-stdarg.c: New file.
3313 * tree-stdarg.h: New file.
3314 * Makefile.in (OBJS-common): Add tree-stdarg.o.
3315 (tree-stdarg.o): Add dependencies.
3316 * function.h (struct function): Add va_list_gpr_size and
3317 va_list_fpr_size fields.
3318 * function.c (allocate_struct_function): Initialize them.
3319 * target.h (struct gcc_target): Add stdarg_optimize_hook.
3320 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3321 (TARGET_INITIALIZER): Add it.
3323 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3324 va_list_{g,f}pr_counter_field.
3325 (ix86_setup_incoming_varargs): Don't do anything if reg_save
3326 area will not be used. Only save registers that tree-stdarg.c
3327 detected they need saving.
3328 (ix86_va_start): Don't set up fields that won't be used.
3330 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3331 va_list_{g,f}pr_counter_field.
3332 (setup_incoming_varargs): Don't do anything if reg_save
3333 area will not be used. Only save registers that tree-stdarg.c
3334 detected they need saving.
3335 (rs6000_va_start): Don't set up fields that won't be used.
3337 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
3338 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
3339 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
3340 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3342 2005-04-09 Jakub Jelinek <jakub@redhat.com>
3345 * config/i386/i386.c (construct_container): Pass empty aligned
3346 struct, union or class in memory.
3348 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
3350 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
3351 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
3352 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
3353 config/rs6000/predicates.md: Fix comment typos.
3355 * sched-int.h (haifa_insn_data): Remove blockage and units.
3356 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
3357 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
3358 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
3360 2005-04-09 Jan Hubicka <jh@suse.cz>
3361 Steven Bosscher <stevenb@suse.de>
3363 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
3364 * cfgloop.c (get_loop_exit_edges): Likewise.
3365 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
3367 * loop-unroll.c (analyze_insns_in_loop): Likewise.
3368 * tree-cfg.c (dump_cfg_status): Likewise.
3370 2005-04-09 David Edelsohn <edelsohn@gnu.org>
3372 * config/rs6000/predicates.md (altivec_register_operand): Remove
3373 redundant match_code test.
3374 (gpc_reg_operand): Same.
3375 (cc_reg_operand): Same.
3376 (cc_reg_not_cr0_operand): Same.
3378 2005-04-09 Jan Hubicka <jh@suse.cz>
3380 Forgotten hunk from my last merge patch:
3381 * final.c (output_addr_const): Do not call mark_referenced.
3383 2005-04-09 Andrew MacLeod <amacleod@redhat.com>
3385 * doc/tree-ssa.texi: Add immediate use documentation.
3387 2005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
3389 * arm.c (FL_WBUF): Define.
3390 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
3391 (arm_is_6_or_7): Delete.
3392 (arm_tune_wbuf): New.
3393 (arm_override_options): Set arm_tune_wbuf.
3394 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
3395 (arm_is_6_or_7): Delete declaration.
3396 (arm_tune_wbuf): New declartion.
3397 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
3398 (model_wbuf): Derive from arm_tune_wbuf.
3399 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
3400 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
3401 (arm740t): Mark CPUs as having a write buffer.
3403 2005-04-09 Uros Bizjak <uros@kss-loka.si>
3405 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
3406 of 'const_double_operand' in operand 2 constraints. Update enable
3409 2005-04-09 Uros Bizjak <uros@kss-loka.si>
3411 * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
3412 (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
3413 * optabs.h (enum optab_index): Add new OTI_lfloor.
3414 (lfloor_optab): Define corresponding macro.
3415 * optabs.c (init_optabs): Initialize lfloor_optab.
3416 * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
3417 and lfloordi2 patterns.
3418 * builtins.c (expand_builtin_int_roundingfn): New prototype.
3419 (expand_builtin_int_roundingfn): New function.
3420 (fold_builtin_int_roundingfn): New prototype.
3421 (fold_builtin_int_roundingfn): New function, renamed from
3422 fold_builtin_lround.
3423 Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
3424 BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
3425 (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
3426 BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
3427 (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
3428 (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
3429 BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
3430 * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
3431 into lfloor built-in function and (long long int)floor{,f,l} into
3432 llfloor built-in function.
3433 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
3436 2005-04-08 Ian Lance Taylor <ian@airs.com>
3438 * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
3439 CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
3440 * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
3441 (DO_COND, DO_BODY): Likewise.
3442 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
3443 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
3444 (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
3445 BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
3446 (build_continue_stmt, build_break_stmt): Don't declare.
3447 (c_do_switch_warnings): Update declaration.
3448 * c-gimplify.c (enum bc_t): Remove.
3449 (struct c_gimplify_ctx, ctxp): Remove.
3450 (push_context, pop_context): Remove static functions.
3451 (c_genericize): Don't call push_context or pop_context.
3452 (begin_bc_block, finish_bc_block): Remove static functions.
3453 (build_bc_goto): Likewise.
3454 (gimplify_c_loop): Likewise.
3455 (gimplify_for_stmt, gimplify_while_stmt): Likewise.
3456 (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
3457 (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
3458 DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
3459 * c-common.c (c_do_switch_warnings): Rename from
3460 c_do_switch_warnings_1.
3461 (c_do_switch_warnings) [old version]: Remove.
3462 (c_do_switch_expr_warnings): Remove.
3463 * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
3464 function instead of c_do_switch_expr_warnings.
3465 * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
3466 CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
3467 * c-pretty-print.c (pp_c_statement): Likewise.
3468 * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
3470 2005-04-08 Devang Patel <dpatel@apple.com>
3472 * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
3473 While selecting replacement condition pay attention to loop header.
3475 2005-04-08 Diego Novillo <dnovillo@redhat.com>
3477 Merge from tree-cleanup-branch: VRP, store CCP, store
3478 copy-prop, incremental SSA updating of FUD chains and
3479 newly exposed symbols.
3481 * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
3482 (OBJS-common): Add tree-vrp.o.
3483 (tree-vrp.o): New rule.
3484 * basic-block.h (nearest_common_dominator_for_set): Declare.
3485 * common.opt (ftree-store-ccp): New flag.
3486 (ftree-copy-prop): New flag.
3487 (ftree-vrp): New flag.
3488 (ftree-store-copy-prop): New flag.
3489 * dominance.c (nearest_common_dominator_for_set): New.
3490 * domwalk.c (walk_dominator_tree): Only traverse
3491 statements in blocks marked in walk_data->interesting_blocks.
3492 * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
3493 * fold-const.c (fold): Handle ASSERT_EXPR.
3494 * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
3495 Set flag_tree_store_ccp, flag_tree_store_copy_prop and
3496 flag_tree_vrp at -O2.
3497 * timevar.def (TV_TREE_VRP): Define.
3498 (TV_TREE_COPY_PROP): Define.
3499 (TV_TREE_STORE_COPY_PROP): Define.
3500 (TV_TREE_SSA_INCREMENTAL): Define.
3501 (TV_TREE_STORE_CCP): Define.
3502 * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
3503 to kill_redundant_phi_nodes from comment.
3504 (verify_expr): Handle ASSERT_EXPR.
3505 * tree-dfa.c (mark_new_vars_to_rename): Remove second
3506 argument. Update all users.
3507 (mark_call_clobbered_vars_to_rename): Remove. Update all
3509 * tree-flow-inline.h (unmodifiable_var_p): New.
3510 * tree-flow.h (enum value_range_type): Declare.
3511 (struct value_range_def): Declare.
3512 (value_range): Declare.
3513 (remove_all_phi_nodes_for): Remove. Update all users.
3514 (find_phi_node_for): Declare.
3515 (add_type_alias): Declare.
3516 (count_uses_and_derefs): Declare.
3517 (kill_redundant_phi_nodes): Remove.
3518 (rewrite_into_ssa): Remove.
3519 (rewrite_def_def_chains): Remove.
3520 (update_ssa, register_new_name_mapping, create_new_def_for,
3521 need_ssa_update_p, name_registered_for_update_p,
3522 release_ssa_name_after_update_ssa, dump_repl_tbl,
3523 debug_repl_tbl, dump_names_replaced_by,
3524 debug_names_replaced_by, mark_sym_for_renaming,
3525 mark_set_for_renaming, get_current_def, set_current_def,
3526 get_value_range, dump_value_range, debug_value_range,
3527 dump_all_value_ranges, debug_all_value_ranges,
3528 expr_computes_nonzero, loop_depth_of_name,
3529 unmodifiable_var_p): Declare.
3530 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
3532 * tree-into-ssa.c (block_defs_stack): Update comment.
3533 (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
3534 syms_to_rename, names_to_release, repl_tbl,
3535 need_to_initialize_update_ssa_p, need_to_update_vops_p,
3536 need_to_replace_names_p): New locals.
3537 (NAME_SETS_GROWTH_FACTOR): Define.
3538 (struct repl_map_d): Declare.
3539 (struct mark_def_sites_global_data): Add field
3541 (enum rewrite_mode): Declare.
3542 (REGISTER_DEFS_IN_THIS_STMT): Define.
3543 (compute_global_livein): Use last_basic_block instead of
3545 (set_def_block): Remove last argument. Update all callers.
3546 (prepare_use_operand_for_rename): Remove. Update all callers.
3547 (prepare_def_operand_for_rename): Remove. Update all callers.
3548 (symbol_marked_for_renaming): New.
3551 (repl_map_hash): New.
3553 (repl_map_free): New.
3554 (names_replaced_by): New.
3555 (add_to_repl_tbl): New.
3556 (add_new_name_mapping): New.
3557 (mark_def_sites): Assume that all the operands in the
3558 statement are in normal form.
3559 (find_idf): Assert that the block in the stack is valid.
3560 (get_default_def_for): New.
3561 (insert_phi_nodes_for): Add new argument 'update_p'.
3563 If update_p is true, add a new mapping between the LHS of
3564 each new PHI and the name that it replaces.
3565 (insert_phi_nodes_1): Only call find_idf if needed.
3566 (get_reaching_def): Call get_default_def_for.
3567 (rewrite_operand): Remove.
3568 (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
3569 and REWRITE_THIS_STMT are false.
3570 Assume that all the operands in the statement are in
3572 (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
3573 (rewrite_virtual_phi_arguments): Remove.
3574 (invalidate_name_tags): Remove.
3575 (register_new_update_single, register_new_update_set,
3576 rewrite_update_init_block, replace_use,
3577 rewrite_update_fini_block, rewrite_update_stmt,
3578 rewrite_update_phi_arguments): New.
3579 rewrite_blocks): Remove argument 'fix_virtual_phis'.
3580 Add arguments 'entry', 'what' and 'blocks'.
3581 Initialize the dominator walker according to 'what' and
3583 Start the dominator walk at 'entry'.
3584 (mark_def_site_blocks): Add argument 'interesting_blocks'.
3585 Use it to configure the dominator walker.
3586 (rewrite_into_ssa): Remove argument 'all'.
3588 (rewrite_all_into_ssa): Remove.
3589 (rewrite_def_def_chains): Remove.
3590 (mark_def_interesting, mark_use_interesting,
3591 prepare_phi_args_for_update, prepare_block_for_update,
3592 prepare_def_site_for, prepare_def_sites,
3593 dump_names_replaced_by, debug_names_replaced_by,
3594 dump_repl_tbl, debug_repl_tbl, init_update_ssa,
3595 delete_update_ssa, create_new_def_for,
3596 register_new_name_mapping, mark_sym_for_renaming,
3597 mark_set_for_renaming, need_ssa_update_p,
3598 name_registered_for_update_p, ssa_names_to_replace,
3599 release_ssa_name_after_update_ssa,
3600 insert_updated_phi_nodes_for, update_ssa): New.
3601 * tree-loop-linear.c (linear_transform_loops): Call
3602 update_ssa instead of rewrite_into_ssa.
3603 * tree-optimize.c (vars_to_rename): Remove.
3605 (init_tree_optimization_passes): Replace
3606 pass_redundant_phi with pass_copy_prop.
3608 Replace pass_ccp with pass_store_ccp.
3609 Add pass_store_copy_prop after pass_store_ccp.
3610 (execute_todo): If the TODO_ flags don't include updating
3611 the SSA form, assert that it does not need to be updated.
3612 Call update_ssa instead of rewrite_into_ssa and
3613 rewrite_def_def_chains.
3614 If TODO_verify_loops is set, call verify_loop_closed_ssa.
3615 (tree_rest_of_compilation):
3616 * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
3617 TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
3618 TODO_cleanup_cfg): Renumber.
3619 (TODO_verify_loops, TODO_update_ssa,
3620 TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
3621 TODO_update_ssa_only_virtuals): Define.
3622 (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
3624 * tree-phinodes.c (make_phi_node): Update documentation.
3625 (remove_all_phi_nodes_for): Remove.
3626 (find_phi_node_for): New.
3627 * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
3628 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
3629 (interpret_rhs_modify_expr): Likewise.
3630 * tree-sra.c (decide_instantiations): Mark all symbols in
3631 SRA_CANDIDATES for renaming.
3632 (mark_all_v_defs_1): Rename from mark_all_v_defs.
3633 (mark_all_v_defs): New function. Update all users to call it
3634 with the whole list of scalarized statements, not just the
3636 * tree-ssa-alias.c (count_ptr_derefs): Make extern.
3637 (compute_flow_insensitive_aliasing): If the tag is
3638 unmodifiable and the variable isn't or vice-versa, don't
3639 make them alias of each other.
3640 (setup_pointers_and_addressables): If the type tag for
3641 VAR is about to change, mark the old one for renaming.
3642 (add_type_alias): New.
3643 * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
3644 (ccp_lattice_t): Rename from latticevalue.
3645 (value): Remove. Update all users.
3646 (const_val): New local variable.
3647 (do_store_ccp): New local variable.
3648 (dump_lattice_value): Handle UNINITIALIZED.
3649 (debug_lattice_value): New.
3650 (get_default_value): Re-write.
3651 (set_lattice_value): Re-write.
3652 (def_to_varying): Remove. Update all users.
3653 (likely_value): Return VARYING for statements that make
3654 stores when STORE_CCP is false.
3655 Return VARYING for any statement other than MODIFY_EXPR,
3656 COND_EXPR and SWITCH_EXPR.
3657 (ccp_initialize): Re-write.
3658 (replace_uses_in, replace_vuse_in, substitute_and_fold):
3659 Move to tree-ssa-propagate.c.
3660 (ccp_lattice_meet): Handle memory stores when
3661 DO_STORE_CCP is true.
3662 (ccp_visit_phi_node): Likewise.
3663 (ccp_fold): Likewise.
3664 (evaluate_stmt): Likewise.
3665 (visit_assignment): Likewise.
3666 (ccp_visit_stmt): Likewise.
3667 (execute_ssa_ccp): Add argument 'store_ccp'. Copy it
3671 (do_ssa_store_ccp): New.
3672 (gate_store_ccp): New.
3673 (pass_store_ccp): Declare.
3674 * tree-ssa-copy.c: Include tree-ssa-propagate.h.
3675 (may_propagate_copy): Reformat.
3676 Don't abort if ORIG is a virtual and DEST isn't.
3677 If NEW does not have alias information but DEST does,
3679 (copy_of, cached_last_copy_of, do_store_copy_prop, enum
3680 copy_prop_kind, which_copy_prop): Declare.
3681 (stmt_may_generate_copy, get_copy_of_val,
3682 get_last_copy_of, set_copy_of_val, dump_copy_of,
3683 copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
3684 copy_prop_visit_stmt, copy_prop_visit_phi_node,
3685 init_copy_prop, fini_copy_prop, execute_copy_prop,
3686 gate_copy_prop, do_copy_prop, gate_store_copy_prop,
3687 store_copy_prop): New.
3688 (pass_copy_prop, pass_store_copy_prop): Declare.
3689 * tree-ssa-dom.c (struct opt_stats_d): Add fields
3690 'num_const_prop' and 'num_copy_prop'.
3691 (cprop_operand): Update them.
3692 (dump_dominator_optimization_stats): Dump them.
3693 (tree_ssa_dominator_optimize): Call update_ssa instead of
3695 (loop_depth_of_name): Declare extern.
3696 (simplify_cond_and_lookup_avail_expr): Guard against NULL
3697 values for LOW or HIGH.
3698 (cprop_into_successor_phis): Only propagate if NEW != ORIG.
3699 (record_equivalences_from_stmt): Call expr_computes_nonzero.
3700 (cprop_operand): Only propagate if VAL != OP.
3701 * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
3702 statement for renaming.
3703 * tree-ssa-loop-im.c (move_computations): Call update_ssa.
3704 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
3705 add_type_alias if necessary.
3706 Call mark_new_vars_to_rename.
3707 (tree_ssa_iv_optimize): If new symbols need to be renamed,
3708 mark every statement updated, call update_ssa and
3709 rewrite_into_loop_closed_ssa.
3710 * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
3711 from LIVEIN if VAR is a virtual.
3712 * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
3713 * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
3714 (get_call_expr_operands): Reformat statement.
3715 (add_stmt_operand): Don't create V_MAY_DEFs for read-only
3717 * tree-ssa-propagate.c (ssa_prop_init): Initialize
3718 SSA_NAME_VALUE for every name.
3719 (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3720 get_value_loaded_by): New.
3721 (replace_uses_in, replace_vuses_in, replace_phi_args_in,
3722 substitute_and_fold): Move from tree-ssa-ccp.c.
3723 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
3724 first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3725 get_value_loaded_by, replace_uses_in, substitute_and_fold):
3727 * tree-ssa.c (verify_use): Fix error message.
3728 (propagate_into_addr, replace_immediate_uses, get_eq_name,
3729 check_phi_redundancy, kill_redundant_phi_nodes,
3730 pass_redundant_phi): Remove. Update all users.
3731 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3732 add_type_alias, if necessary.
3733 * tree-vectorizer.h (struct _stmt_vect_info): Update
3734 documentation for field 'memtag'.
3735 * tree-vrp.c: New file.
3736 * tree.def (ASSERT_EXPR): Define.
3737 * tree.h (ASSERT_EXPR_VAR): Define.
3738 (ASSERT_EXPR_COND): Define.
3739 (SSA_NAME_VALUE_RANGE): Define.
3740 (struct tree_ssa_name): Add field 'value_range'.
3741 (PHI_REWRITTEN): Remove.
3742 (struct tree_phi_node): Remove field 'rewritten'.
3743 * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
3744 -ftree-store-copy-prop): Document.
3745 * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
3746 Document usage of update_ssa.
3748 2005-04-08 David Edelsohn <edelsohn@gnu.org>
3751 * config/rs6000/predicates.md (altivec_register_operand): Accept
3753 (and64_operand): Do not limit CONST_INT to mask64_operand.
3754 (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
3755 (and_operand): Do not limit CONST_INT to mask_operand.
3757 2005-04-09 Hans-Peter Nilsson <hp@axis.com>
3759 PR rtl-optimization/20466
3760 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
3761 for overlap of the address of each list member.
3762 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
3764 2005-04-08 Mike Stump <mrs@apple.com>
3766 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
3768 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
3771 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
3773 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
3775 * function.c (push_function_context_to): Don't set
3777 * function.h (function): Remove contains_functions.
3778 (current_function_contains_functions): Remove.
3780 * function.h (function): Remove instrument_entry_exit.
3781 (current_function_instrument_entry_exit): Remove.
3783 * function.h (nonlocal_labels): Remove.
3785 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
3787 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
3788 (check_attr_value, write_attr_get, write_expr_attr_cache,
3789 find_attr, make_internal_attr): Don't reference negative_ok or
3791 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
3792 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
3793 (ATTR_STATIC): Adjust the value.
3795 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
3797 2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
3799 * config/s390/tpf.h (ASM_SPEC): Define.
3801 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
3803 * tree-flow.h: Remove the prototype for
3804 redirect_immediate_uses.
3805 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
3807 2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
3809 * arm.c (arm_const_double_by_parts): New function.
3810 * arm-protos.h (arm_const_double_by_parts): Add prototype.
3811 * arm.md (define_split for 64-bit constants): Add another one.
3813 2005-04-08 Andrew MacLeod <amacleod@redhat.com>
3815 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
3817 2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3819 * system.h: Revert last change.
3821 2005-04-08 Richard Sandiford <rsandifo@redhat.com>
3823 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
3824 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
3825 (TARGET_SWITCHES): Delete.
3826 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3827 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
3828 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
3829 * config/xtensa/xtensa.opt: New file.
3831 2005-04-08 Ben Elliston <bje@au.ibm.com>
3833 * config/fp-bit.c: Include L_mul_tf in #endif comment.
3834 * config/fp-bit.h: Tidy comments.
3836 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3838 * system.h: Poison PARAMS.
3840 2005-04-07 Richard Sandiford <rsandifo@redhat.com>
3842 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3843 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
3844 (TARGET_SWITCHES): Delete.
3845 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3846 * config/vax/vax.opt: New file.
3848 2005-04-07 Daniel Berlin <dberlin@dberlin.org>
3850 * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
3852 2005-04-07 Ian Lance Taylor <ian@airs.com>
3854 * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
3856 * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
3857 * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
3860 2005-04-07 Kazu Hirata <kazu@cs.umass.edu>
3862 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
3863 all immediate uses in PHI nodes.
3865 2005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
3867 * arm.c (arm_const_double_inline_cost): Handle any constant by
3868 using gen_lowpart and gen_highpart_mode.
3869 (note_invalid_constants): All constants in an RTX with a constraint
3870 that permits memory are now pushed to the constant pool.
3871 (output_move_double): Delete code to handle reg to reg and
3872 constant to reg moves.
3873 (const_double_needs_minipool, output_mov_immediate): Delete.
3874 * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
3875 CONST_INT and CONST_VECTOR.
3876 * arm.md (ANY64): New mode macro.
3877 (arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
3878 (movdf_soft_insn): Split reg-reg and const-reg moves.
3879 (split patterns for 64-bit constant and register moves): New.
3880 * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
3881 (cirrus_movdf_hard_insn): Likewise.
3882 * fpa.md (movdf_fpa): Likewise.
3883 * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
3884 (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
3886 (movv2si_internal_2): Likewise.
3887 * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
3888 (movdf_vfp): Likewise.
3889 * arm-protos.h (output_mov_immediate): Delete prototype.
3891 2005-04-07 Joseph S. Myers <joseph@codesourcery.com>
3894 * simplify-rtx.c (simplify_unary_operation_1): Check
3895 SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
3897 2005-04-06 James E Wilson <wilson@specifixinc.com>
3900 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
3903 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
3905 * coverage.h (GCOV_TYPE_NODE): Delete.
3906 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
3907 (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
3908 * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
3909 (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
3910 * value-prof.c (tree_divmod_fixed_value_transform): Delete.
3912 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
3915 * Makefile.in (gcc.pot): Remove options.c dependency.
3916 * optc-gen.awk: Don't quote help strings with N_().
3918 2005-04-06 James A. Morrison <phython@gcc.gnu.org>
3920 * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
3921 the function returns a pointer type.
3923 2005-04-06 Daniel Berlin <dberlin@dberlin.org>
3925 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
3926 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
3927 * doc/invoke.texi: Documnet salias-max-implicit-fields.
3928 * tree-ssa-alias.c (struct used_part): Add implicit_uses and
3929 explicit_uses members.
3930 (get_or_create_used_part_for): Initialize new fields.
3931 (fieldoff_compare): New function.
3932 (create_overlap_variables_for): Count number of fields, use
3933 heuristic to determine whether to create subvars for vars with
3935 Sort the field list by offset and avoid creating duplicate SFT's.
3937 2005-04-06 Richard Sandiford <rsandifo@redhat.com>
3939 * c.opt (-F): Remove trailing whitespace from help string.
3940 (-finput-charset): Use a tab to separate the switch name and help
3942 * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
3943 (-ftree-vectorizer-verbose): Likewise.
3945 2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
3947 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
3948 a PHI argument where