1 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
3 PR rtl-optimization/18877
4 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
7 2005-04-28 David Edelsohn <edelsohn@gnu.org>
10 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
12 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
13 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
14 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
16 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
18 * arm.c (legitimize_pic_address): Fix sense of assertion test for
19 creating pseudos when the base offset is too large.
21 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
23 * global.c (earlyclobber_regclass): Change the type to
25 (check_earlyclobber): Update uses of earlyclobber_regclass.
26 (mark_reg_use_for_earlyclobber): Likewise.
27 (calculate_local_reg_bb_info): Allocate and free
28 earlyclobber_regclass using the VEC API.
30 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
32 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
35 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
37 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
40 * config.gcc: Obsolete c4x-* and tic4x-*.
42 * tree.h (edge_def): Remove.
44 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
45 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
46 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
47 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
50 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
51 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
52 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
53 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
54 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
55 machmode.def, mips-tfile.c, params.c, pretty-print.c,
56 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
57 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
58 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
59 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
60 config/i386/cygming.h, config/i386/djgpp.h,
61 config/i386/lynx.h, config/i386/netware.c,
62 config/i386/winnt.c, config/ia64/ia64-c.c,
63 config/iq2000/iq2000.c, config/m32r/little.h,
64 config/m68k/m68k-protos.h, config/m68k/m68k.h,
65 config/m68k/m68k.md, config/mcore/mcore.c,
66 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
67 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
68 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
69 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
70 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
71 config/pdp11/pdp11.h, config/rs6000/darwin.h,
72 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
73 config/s390/2064.md, config/s390/2084.md,
74 config/s390/s390-modes.def, config/s390/s390-protos.h,
75 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
76 config/stormy16/stormy16.c, config/vax/vax-protos.h,
77 config/vax/vax.c, config/vax/vax.h,
78 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
81 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
83 * c-typeck.c (build_compound_expr): Correct logic in last change.
85 2005-04-27 James E. Wilson <wilson@specifixinc.com>
87 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
88 parameters. Replace conditional move code with assert checking for
89 ar.lc. Delete obsolete comments.
90 (set_src_needs_barrier): Delete cond parameter, and code using it.
91 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
92 assert checking for PR_REGS. Fix calls to update_set_flags and
93 set_src_needs_barrier.
94 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
95 callers. Rewrite explanatory comment before the function.
96 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
99 2005-04-27 Mike Stump <mrs@apple.com>
101 * doc/cpp.texi: gcc now implements universal character names.
103 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
106 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
107 being a compound expression whose right-hand side is cast to void.
109 2005-04-27 Caroline Tice <ctice@apple.com>
111 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
112 Remove targetm.have_named_sections test.
113 (fix_edges_for_rarely_executed_code): Likewise.
114 (insert_section_boundary_note): Likewise.
115 (reorder_basic_blocks): Check partitioning flag before calling
116 verify_hot_cold_block_grouping.
117 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
118 the function struct rather than global variables.
119 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
120 (COLD_END_LABEL): Likewise
121 (cold_text_section_label): New static global variable.
122 (cold_end_label): Likewise.
123 (dwarf2out_switch_text_section): Get hot/cold section labels from
124 the function struct rather than global variables; test to make sure
126 (output_aranges): Use cold_text_section_label and cold_end_label;
127 check partitioning flag before putting out delta.
128 (output_ranges): Remove incorrect code attempting to use
130 (output_line_info): Get cold section label from function struct; test
131 to make sure cfun is defined.
132 (add_location_or_const_value_attribute): Likewise.
133 (dwarf2out_var_location): Likewise.
134 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
135 write out cold_text_section_label if partition flag is set.
136 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
137 * function.h (struct function): Add new fields to point to hot/cold
138 section labels: hot_section_label, cold_section_label,
139 hot_section_end_label and cold_section_end_label; also add new field
140 for cold text section name, unlikely_text_section_name.
141 * opts.c (decode_options): Turn off partitioning flag if
142 !targetm.have_named_sections.
143 * output.h (hot_section_label): Remove.
144 (hot_section_end_label): Remove.
145 (cold_section_end_label): Remove.
146 (unlikely_section_label): Remove.
147 (unlikely_text_section_name): Remove.
148 * passes.c (rest_of_handle_final): Remove extra blank line.
149 * varasm.c (unlikely_section_label): Remove.
150 (hot_section_label): Remove.
151 (hot_section_end_label): Remove.
152 (cold_section_end_label): Remove.
153 (unlikely_text_section_name): Remove.
154 (initialize_cold_section_name): Modify to call
155 targetm.strip_name_encoding; to store cold section name in current
156 function struct, if it exists; and to only use the decl_section_name
157 if flag_named_sections is true.
158 (unlikely_text_section): Modify to get section name out of current
159 function struct, if there is one; otherwise build it from
160 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
161 (in_unlikely_text_section): Likewise.
162 (named_section): Modify to get/put cold section name in current function
163 struct, if there is one.
164 (function_section): Change 'bool unlikely' to 'int reloc'; check
165 targetm.have_named_sections before calling named_section.
166 (current_function_section): Likewise.
167 (assemble_start_function): Modify to get/put unlikely_text_section_name
168 in current function struct; modify to get hot/cold section labels
169 from function struct; initialize labels using
170 ASM_GENERATE_INTERNAL_LABEL;
171 test partitioning flag before writing out hot section label.
172 (assemble_end_function): Test partitioning flag before writing out
173 hot/cold section labels.
174 (default_section_type_flags_1): Get cold text section name from
175 function struct if there is one; Set flags correctly for
176 cold text section if there is not a current function struct.
178 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
180 * tree-ssa-propagate.c (set_rhs): Revert last change.
182 2005-04-27 Steve Ellcey <sje@cup.hp.com>
184 * explow.c (convert_memory_address): Add gcc_assert.
186 2005-04-27 Mark Mitchell <mark@codesourcery.com>
188 * configure.ac: Check for ld --sysroot support.
189 * gcc.c: Document %R specifier for specs.
190 (SYSROOT_SPEC): New macro.
191 (sysroot_spec): New variable.
192 (static_specs): Add sysroot_spec.
193 (main): Pass the sysroot spec to the linker if appropriate.
194 * configure: Regenerated.
195 * config.in: Likewise.
197 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
199 * fold-const.c (fold_binary): Use build_fold_addr_expr
200 for address calculation and INDIRECT_REF handling.
202 2005-04-27 Andrew Haley <aph@redhat.com>
204 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
206 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
208 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
209 pointer when thumb backtracing is on.
211 * config/fp-bit.c (abort): Revert change.
213 2005-04-27 Ian Lance Taylor <ian@airs.com>
215 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
217 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
219 * tree-ssa-dce.c: Fix a comment typo.
221 2005-04-27 David S. Miller <davem@davemloft.net>
223 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
224 Kill setjmpless_size. current_function_calls_setjmp is completely
225 computed when we are called, so just use the optimized size value
226 instead of using REG_SAVE_AREA notes.
227 (optimize_save_area_alloca): Delete....
228 * rtl.h (optimize_save_area_alloca): Likewise...
229 * passes.c (rest_of_compilation): and don't call it any more.
230 * reg-notes.def (SAVE_AREA): Delete.
232 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
234 * config/fp-bit.c (abort): Add noreturn attribute.
236 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
237 gcc_unreachable as appropriate.
238 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
239 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
240 ASM_OUTPUT_REG_POP): Likewise.
242 2005-04-27 Paolo Bonzini <bonzini@gnu.org>
244 * tree-complex.c (expand_vector_operations_1): Do not build
245 VIEW_CONVERT_EXPR's for the lhs.
247 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
249 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
250 unnecessary noncanonical RTL handling.
251 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
252 gcc_assert and gcc_unreachable.
254 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
255 gcc_unreachable as appropriate.
256 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
257 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
258 use_return_insn, const_ok_for_op, arm_gen_constant,
259 arm_canonicalize_comparison, legitimize_pic_address,
260 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
261 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
262 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
263 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
264 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
265 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
266 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
267 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
268 output_call, output_mov_long_double_fpa_from_arm,
269 output_mov_long_double_arm_from_fpa,
270 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
271 output_move_double, arithmetic_instr, shift_op, int_log2,
272 output_return_instruction, arm_output_function_prologue,
273 arm_output_epilogue, arm_output_function_epilogue,
274 emit_multi_reg_push, arm_get_frame_offsets,
275 arm_compute_initial_elimination_offset, arm_expand_prologue,
276 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
277 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
278 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
279 thumb_compute_initial_elimination_offset,
280 thumb_output_function_prologue, thumb_load_double_from_address,
281 thumb_output_move_mem_multiple, thumb_reload_out_hi,
282 arm_emit_vector_const, arm_dbx_register_number): Likewise.
283 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
284 * config/arm/arm.md (thumb_extendhisi2,
285 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
286 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
287 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
288 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
289 * config/arm/cirrus.md (*cirrus_arm_movdi,
290 *cirrus_movdf_hard_insn): Likewise.
291 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
293 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
295 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
296 (num_ssa_names): Use VEC_length.
297 (ssa_names): Use VEC_index.
298 * tree-ssanames.c (ssa_names): Change the type to
300 (init_ssanames, fini_ssa_names, make_ssanames,
301 release_ssa_name): Update uses of ssa_names.
303 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
304 Use fold_buildN instead of fold (buildN (...)).
306 2005-04-27 Devang Patel <dpatel@apple.com>
308 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
310 2005-04-27 Matt Thomas <matt@3am-software.com>
311 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
313 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
314 (vax_output_mi_thunk): Ditto.
315 (vax_notice_cc_update): Ditto.
316 (INDEX_REGISTER_P): Add trailing \.
317 (BASE_REGISTER_P): Add trailing \.
318 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
320 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
322 * tree-ssa-propagate.c (set_rhs): Check operand of
323 ADDR_EXPR for gimpliness, too.
325 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
327 * tree-ssa-pre.c: Fix a comment typo.
329 2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
331 PR tree-optimization/21171
332 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
333 record address uses if the reference is volatile.
335 2004-04-27 Paolo Bonzini <bonzini@gnu.org>
337 * tree-complex.c (expand_vector_operation): New, extracted from
338 expand_vector_operations_1.
339 (tree_vec_extract): Build a NOP_EXPR.
340 (expand_vec_parallel): Do not care about returning the correct type.
341 (expand_vector_operations_1): Call expand_vector_operation.
342 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
344 * tree-complex.c (gate_expand_vector_operations): New.
345 (pass_lower_vector_ssa): Use it.
346 * tree-optimize.c (init_tree_optimization_passes): Include
347 pass_lower_vector_ssa.
348 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
349 (vectorizable_operation): Use it.
350 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
351 integer modes for the vector type.
353 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
354 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
355 Do not cope with UNITS_PER_SIMD_WORD == 0.
356 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
357 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
358 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
359 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
360 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
361 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
362 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
364 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
365 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
366 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
368 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
369 (UNITS_PER_SIMD_WORD): New.
371 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
373 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
374 gcc_unreachable as appropriate.
375 (ia64_expand_load_address, ia64_expand_tls_address,
376 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
377 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
378 next_scratch_gr_reg, ia64_initial_elimination_offset,
379 ia64_expand_prologue, ia64_expand_epilogue,
380 ia64_output_dwarf_dtprel, ia64_print_operand,
381 ia64_register_move_cost, first_instruction, rws_access_regno,
382 update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
383 ia64_sched_init, ia64_variable_issue,
384 ia64_first_cycle_multipass_dfs_lookahead_guard,
385 ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
386 ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
387 process_for_unwind_directive, ia64_hpux_file_end): Likewise.
388 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
389 * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
390 * config/ia64/predicates.md (got_symbolic_operand,
391 sdata_symbolic_operand): Likewise.
392 * config/ia64/vect.md (vcondv2sf): Likewise.
394 2005-04-27 Matt Thomas <matt@3am-software.com>
396 * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
397 CONSTANT_ADDRESS_P in config/vax/vax.h
398 (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
399 (INDEX_REGISTER_P): New.
400 (BASE_REGISTER_P): New.
401 (indirectable_constant_address_p): New. Adapted from
402 INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
403 (indirectable_address_p): New. Adapted from
404 INDIRECTABLE_ADDRESS_P in vax.h.
405 (nonindexed_address_p): New. Adapted from
406 GO_IF_NONINDEXED_ADDRESS in vax.h.
407 (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
408 (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
409 (legitimate_address_p): New. Adapted from
410 GO_IF_LEGITIMATE_ADDRESS in vax.h.
411 (vax_mode_dependent_address_p): New. Adapted from
412 GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
413 * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
414 legitimate_constant_address_p.
415 (CONSTANT_P): Use legitimate_constant_p.
416 (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
417 (INDIRECTABLE_ADDRESS_P): Removed.
418 (GO_IF_NONINDEXED_ADDRESS): Removed.
419 (INDEX_TEMP_P): Removed.
420 (GO_IF_REG_PLUS_INDEX): Removed.
421 (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
422 definitions, depending on whether REG_OK_STRICT is defined.
423 (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
424 Two definitions, depending on whether REG_OK_STRICT is defined.
425 * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
427 (legitimate_constant_p): Prototype added.
428 (legitimate_address_p): Prototype added.
429 (vax_mode_dependent_address_p): Prototype added.
431 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
433 * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
435 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
438 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
441 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
444 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
445 assertion failures, if __gcc_host_wide_int__ is not properly
447 (init_dynamic_diag_info): Give errors, not assertion failures, if
448 location_t, tree or __gcc_host_wide_int__ are not properly
451 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
453 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
454 n_iv_uses, iv_use, n_iv_cands, iv_cand,
455 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
456 prepare_decl_rtl, free_loop_data,
457 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
460 * tree.h (tree_phi_node): Add a comment about the order of PHI
463 2005-04-26 Paul Brook <paul@codesourcery.com>
465 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
467 2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
469 * config/mips.mips.c (mips_legitimize_tls_address): Use
472 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
473 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
474 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
476 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
479 2005-04-26 Jeff Law <law@redhat.com>
481 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
482 (op_iter_init_must_and_may_def): Likewise.
483 (unmodifiable_var_p): Move to a later point in the file.
484 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
485 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
486 (dse_record_phis): Directly check for virtual operands rather than
487 using need_imm_uses_for.
488 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
489 store has multiple V_{MAY,MUST}_DEF operands.
491 2005-04-26 Andrew MacLeod <amacleod@redhat.com>
493 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
496 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
498 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
499 call to find_edge outside a loop to go through a PHI chain.
501 2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
503 PR tree-optimization/17598
504 * fold-const.c (fold_binary): Fold comparisons of addresses
505 of COMPONENT_REFs which reference the same field to
506 comparisons of the addresses of the base objects.
508 2005-04-26 Julian Brown <julian@codesourcery.com>
510 * config/arm/arm.c (arm_return_in_msb): New function.
511 (arm_must_pass_in_stack): New function.
512 (TARGET_RETURN_IN_MSB): Define target hook.
513 (TARGET_MUST_PASS_IN_STACK): Define target hook.
514 (arm_function_value): Pad small aggregate return.
515 (arm_pad_arg_upward): New function.
516 (arm_pad_reg_upward): New function.
517 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
518 (FUNCTION_ARG_PADDING): Define macro.
519 (BLOCK_REG_PADDING): Define macro.
520 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
521 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
522 (arm_pad_reg_upward): Declare function.
524 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
526 * basic-block.h (ei_cond): New.
527 (FOR_EACH_EDGE): Call ei_cond.
529 PR tree-optimization/21047
530 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
531 (fold): Don't handle ASSERT_EXPR.
533 2005-04-25 Roger Sayle <roger@eyesopen.com>
535 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
536 all writes to any stack register as a read/write dependency on
538 (sched_analyze_2): Likewise, for reads from any stack register.
540 2005-04-25 Richard Henderson <rth@redhat.com>
542 * final.c (output_addr_const): Revert 2005-04-09 change.
544 2005-04-25 Mike Stump <mrs@apple.com>
546 * config/darwin.c (darwin_encode_section_info): Always set
547 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
549 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
551 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
552 gensupport.c, protoize.c, toplev.c: Replace calls to
553 `unlock_stream' with `unlock_std_streams'.
555 2005-04-25 Devang Patel <dpatel@apple.com>
557 * dbxout.c (dbxout_type): Emit attribute vector.
559 2005-04-05 Paul Brook <paul@codesourcery.com>
561 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
562 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
563 * config/arm/arm.c (arm_cxx_atexit_name): New function.
564 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
565 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
566 (register_dtor_fn): Likewise.
567 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
569 2005-04-25 Ian Lance Taylor <ian@airs.com>
571 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
572 * c-common.h (EXPR_STMT_EXPR): Don't define.
573 (c_common_stmt_codes): Don't define.
574 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
575 * c-gimplify.c (gimplify_expr_stmt): Remove.
576 (c_gimplify_expr): Remove EXPR_STMT case.
577 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
578 to INIT_STATEMENT_CODES.
579 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
581 2005-04-25 Jan Hubicka <jh@suse.cz>
583 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
585 * except.c: Include diagnostic.h
586 (dump_eh_tree, verify_eh_tree): New functions.
587 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
588 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
589 (dump_function_to_file): dump eh tree.
590 * tree-eh.c (mark_eh_edge): New function.
591 (mark_eh_edge_found_error): New static variable.
592 (verify_eh_edges): New function.
594 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
596 * tree-ssa-alias.c (fieldoff_t): Remove.
597 (fieldoff_s): typedef the structure itself. Create a vector of
599 (push_fields_onto_fieldstack): Return count of fields pushed.
600 Remove peeling of first field. Adjust.
601 (fieldoff_compare): Adjust.
602 (create_overlap_variables_for): Adjust.
604 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
606 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
608 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
611 * doc/install.texi: Document correct assembler and linker to use
612 on i?86-*-solaris2.10.
614 2005-04-25 Steven Bosscher <stevenb@suse.de>
616 Fix PR tree-optimization/21173
618 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
619 Unshare expression we pass to force_gimple_operand.
621 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
622 Stephen Clarke <stevec@superh.com>
623 Roger Sayle <roger@eyesopen.com>
625 PR rtl-optimization/20413
626 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
627 VOIDmode for LABEL_REF.
628 * final.c (shorten_branches): Likewise.
629 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
630 * loop.c (reg_dead_after_loop): Likewise.
631 * varasm.c (decode_addr_const): Likewise.
632 * doc/rtl.texi: Document mode requirement for LABEL_REF.
634 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
636 * config.gcc (avr-*-*): Remove redundant "case".
638 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
640 * tree-vect-analyze.c (vect_mark_relevant): Take
641 VEC(tree,heap) instead of varray_type as an argument.
642 (vect_mark_stmts_to_be_vectorized): Change the type of
643 worklist to VEC(tree,heap). Adjust uses of worklist.
645 2005-04-24 Devang Patel <dpatel@apple.com>
647 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
649 2005-04-24 Ian Lance Taylor <ian@airs.com>
651 * c-semantics.c (build_stmt): Remove test of specific tree codes
652 for TREE_SIDE_EFFECTS handling.
654 2005-04-24 Per Bothner <per@bothner.com>
656 * c-opts.c (finish_options): Make the line-number of the <built-in>
657 location 0, as assumed elsewhere, rather than 1.
659 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
661 * tree-ssa-uncprop.c (equiv_stack): Change the type o
663 (tree_ssa_uncprop, uncprop_finalize_block,
664 uncprop_initialize_block): Update uses of equiv_stack.
666 2005-04-24 Richard Henderson <rth@redhat.com>
669 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
670 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
672 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
673 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
674 <DIV, MOD>: Likewise.
676 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
678 * collect2.c (main): Unlock the stdio streams.
679 * gcc.c (main): Likewise.
680 * gcov-dump.c (main): Likewise.
681 * gcov.c (main): Likewise.
682 * gen-protos.c (main): Likewise.
683 * gensupport.c (init_md_reader_args_cb): Likewise.
684 * protoize.c (main): Likewise.
685 * toplev.c (general_init): Likewise.
687 2005-04-24 Jakub Jelinek <jakub@redhat.com>
690 * cgraph.h (cgraph_local_info): Add vtable_method field.
691 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
692 and node is vtable_method, finalized and not reachable, don't do
695 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
697 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
699 * tree-ssa-pre.c (create_value_expr_from): Use
700 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
701 * tree-ssa-propagate.c (stmt_makes_single_load,
702 stmt_makes_single_store): Use REFERENCE_CLASS_P.
703 * tree-vect-transform.c (vect_is_simple_cond): Use
705 * tree-vrp.c (extract_range_from_assert,
706 build_assert_expr_for, fp_predicate, has_assert_expr): Use
709 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
710 of tpa_to_clear to VEC(int,heap). Update uses of
711 tpa_to_clear. Free tpa_to_clear at the end.
713 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
715 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
718 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
720 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
721 and gcc_unreachable as appropriate.
722 (num_insns_constant, output_vec_const_move,
723 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
724 rs6000_emit_set_const, rs6000_emit_move,
725 spe_build_register_parallel, function_arg,
726 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
727 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
728 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
729 rs6000_common_init_builtins, expand_block_clear,
730 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
731 extract_ME, rs6000_get_some_local_dynamic_name,
732 rs6000_output_function_entry, print_operand,
733 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
734 output_cbranch, output_e500_flip_gt_bit,
735 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
736 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
737 compute_save_world_info, rs6000_stack_info,
738 rs6000_emit_load_toc_table, rs6000_frame_related,
739 spe_synthesize_frame_save, rs6000_emit_epilogue,
740 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
741 output_function_profiler, rs6000_trampoline_size,
742 rs6000_initialize_trampoline, find_addr_reg,
743 rs6000_machopic_legitimize_pic_address,
744 rs6000_initial_elimination_offset,
745 rs6000_dbx_register_number): Likewise.
746 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
747 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
748 *movti_power, *movti_string, call, call_value, sibcall,
749 sibcall_value): Likewise.
750 * config/rs6000/spe.md (*movdf_e500_double,
751 *movv2si_internal): Likewise.
752 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
755 2005-04-24 Richard Henderson <rth@redhat.com>
758 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
759 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
760 Deny modes smaller than 4 bytes.
761 * config/i386/i386-protos.h: Update.
763 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
765 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
766 Switch h8300-*-rtems* to ELF.
768 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
770 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
772 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
774 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
776 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
779 * fold-const.c: Fold &a[i]-&a[j] to i-j.
781 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
783 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
784 definitions of ssa names in condition. Split recusive part to ...
785 (tree_simplify_using_condition_1): New function.
786 (expand_simple_operations): New function.
788 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
790 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
791 (find_interesting_uses_cond): Do not use integer_zerop and
792 integer_nonzerop to check for integer constants.
793 (set_use_iv_cost): Record the value field.
794 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
795 determine_use_iv_cost_outer): Set the value field of the cost pair.
796 (may_eliminate_iv): Do not return the comparison code.
797 (iv_elimination_compare): New function.
798 (determine_use_iv_cost_condition): Set the value field. Record
799 noneliminable invariants correctly.
800 (rewrite_use_compare, rewrite_use_outer): Use the value field.
802 2005-04-23 DJ Delorie <dj@redhat.com>
804 * diagnostic.c (warning): Accept parameter to classify warning option.
805 (warning0): New, for when a pointer to an error() like function is needed.
806 * errors.c (warning): Likewise.
807 * errors.h (warning, warning0): Adjust prototypes.
808 * toplev.h (warning, warning0): Likewise.
810 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
811 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
812 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
813 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
814 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
815 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
816 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
817 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
819 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
820 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
821 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
822 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
823 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
824 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
825 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
826 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
827 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
828 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
829 config/rs6000/aix52.h, config/rs6000/darwin.h,
830 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
831 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
832 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
833 config/stormy16/stormy16.c, config/v850/v850-c.c,
834 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
837 2005-04-23 Richard Henderson <rth@redhat.com>
840 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
841 performing some integral scalar simplifications.
843 2005-04-23 Richard Henderson <rth@redhat.com>
846 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
847 simplifying CONST_VECTOR.
849 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
851 * tree-ssa-live.c (live_worklist): Take a stack allocated on
852 heap as an argument. Update uses of stack.
853 (calculate_live_on_entry): Allocate stack on heap.
855 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
856 partition_link and tpa_nodes on heap.
858 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
859 (mark_stmt_necessary, propagate_necessity,
860 mark_really_necessary_kill_operand_phis): Update uses of
862 (tree_dce_init): Allocate worklist using VEC_alloc.
863 (tree_dce_done): Free worklist using VEC_free.
865 2005-04-23 Mike Stump <mrs@apple.com>
867 * config/darwin.c (machopic_indirection_name): Don't use
869 (darwin_emit_unwind_label): Use user_label_prefix instead of
872 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
874 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
876 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
878 * config.gcc <cris-*>: Specify .opt files.
879 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
880 config/cris/linux.opt: New files.
881 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
882 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
883 (TARGET_ELF): Override to 0.
884 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
885 -melinux-stacksize=N.
886 * config/cris/cris.c: (cris_handle_option): New function.
887 (TARGET_DEFAULT_TARGET_FLAGS): Override.
888 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
889 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
890 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
891 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
892 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
893 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
894 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
895 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
896 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
897 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
898 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
899 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
900 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
901 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
902 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
903 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
904 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
905 (TARGET_LINUX): Define 0.
906 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
907 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
908 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
909 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
910 (TARGET_LINUX): Override to 1.
911 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
913 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
915 * haifa-sched.c (schedule_block): Fix thinko in previous
916 assertification patch.
918 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
920 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
921 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
922 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
923 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
924 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
925 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
926 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
928 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
929 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
930 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
931 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
932 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
933 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
934 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
935 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
936 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
937 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
938 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
939 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
940 (SUBTARGET_OPTIONS): Delete.
941 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
942 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
944 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
945 (pa_cpu_string, pa_unix_string): Delete.
946 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
947 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
949 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
950 (pa_handle_option): New function.
951 (override_options): Remove handling of -march=, -mfixed-range=,
952 -mschedule= and -munix=.
953 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
954 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
955 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
956 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
957 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
958 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
959 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
961 * config/pa/pa.opt: New file.
962 * config/pa/pa-hpux.opt: New file.
963 * config/pa/pa-hpux1010.opt: New file.
964 * config/pa/pa-hpux1111.opt: New file.
965 * config/pa/pa64-hpux.opt: New file.
967 2005-04-22 David S. Miller <davem@davemloft.net>
969 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
970 integer when it's mode is VOIDmode not DImode.
972 2005-04-22 Geoffrey Keating <geoffk@apple.com>
974 * config/rs6000/rs6000.md (sync_add<mode>_internal,
975 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
976 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
977 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
978 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
979 "bne- $-xxx" rather than local labels.
980 (sync_lock_release<mode>): Add second operand.
981 (lwsync): Use .long rather than a more meaningful opcode.
982 * doc/md.texi (Standard Names): Add description of second
983 parameter to sync_lock_test_and_set.
985 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
987 PR tree-optimization/21088
988 * fold-const.c (fold_unary, fold_binary, fold_ternary):
990 * tree-vrp.c (compare_values): Use fold_binary to compare
991 pointers. Use boolean_type_node as the type of a comparison
992 expression being folded.
993 * tree.h: Add prototypes for fold_unary, fold_binary,
996 * tree-ssa-dom.c: Fix formatting.
998 2005-04-22 Diego Novillo <dnovillo@redhat.com>
1000 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
1001 * lambda-code.c (perfect_nestify): Mark virtual operands in
1002 the moved statement for renaming.
1003 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
1004 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1005 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
1006 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1007 * tree-flow.h (struct var_ann_d): Update comments.
1008 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
1009 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
1010 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
1011 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
1012 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
1013 debug_names_replaced_by): Remove declarations.
1014 (delete_update_ssa, get_current_def, set_current_def): Declare.
1015 (rewrite_into_loop_closed_ssa): Add new argument. Update
1017 * tree-into-ssa.c: Include params.h.
1018 (old_virtual_ssa_names): Remove. Update all users.
1019 (need_to_replace_names_p): Remove. Update all users.
1020 (struct update_ssa_stats_d): Declare.
1021 (update_ssa_stats): New local.
1022 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
1023 dump_tree_ssa_stats, debug_tree_ssa_stats,
1024 dump_update_ssa, debug_update_ssa,
1025 dump_names_replaced_by, debug_names_replaced_by): Declare.
1026 (get_current_def, set current_def): Make extern.
1027 (is_old_name, is_new_name): Protect against references
1028 past the end of the sets.
1029 (add_new_name_mapping): Assert that OLD and NEW are
1030 different SSA names for the same symbol.
1031 When adding a virtual mapping, update stats for virtual
1033 (insert_phi_nodes_for): If UPDATE_P is true, create the
1034 LHS of the new PHI by duplicating SSA name VAR.
1035 (insert_phi_nodes_1): Remove. Update all users.
1036 (insert_phi_nodes): Remove second argument. Update all
1038 (maybe_replace_use, maybe_replace_def): New.
1039 (rewrite_update_stmt): Call them.
1040 (mark_def_interesting): Remove calls to is_gimple_reg.
1041 (prepare_phi_args_for_update): Remove. Update all users.
1042 (prepare_block_for_update): Only process virtual operands
1043 and GIMPLE registers in normal form.
1044 (prepare_use_sites_for): New.
1045 (prepare_names_to_update): Rename from prepare_def_sites.
1046 Call prepare_use_sites_for.
1047 (dump_update_ssa): Rename from dump_repl_tbl.
1049 Show statistics for virtual mapping heuristic.
1050 (debug_update_ssa): Rename from debug_debug_repl_tbl.
1051 (init_update_ssa): Initialize UPDATE_SSA_STATS.
1052 (delete_update_ssa): Make extern.
1053 (mark_set_for_renaming): If the set is empty, do nothing.
1054 (release_ssa_name_after_update_ssa): Update comment.
1055 (insert_updated_phi_nodes_for): Do not remove existing
1056 PHI nodes for symbols.
1057 (switch_virtuals_to_full_rewrite_p): New.
1058 (switch_virtuals_to_full_rewrite): New.
1059 (update_ssa): Call them.
1060 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
1061 for every statement before updating.
1062 If all the names in NEW_SSA_NAMES have been marked for
1063 removal, do nothing.
1064 Only start at the top of the CFG if there are symbols in
1066 (ssa_rewrite_finalize_block): Remove.
1067 (ssa_register_new_def): Remove.
1068 (ssa_rewrite_stmt): Remove.
1069 (ssa_rewrite_phi_arguments): Remove.
1070 (ssa_rewrite_initialize_block): Remove.
1071 (ssa_mark_def_sites): Remove.
1072 (ssa_mark_def_sites_initialize_block): Remove.
1073 (ssa_mark_phi_uses): Remove.
1074 (rewrite_ssa_into_ssa): Remove.
1075 * tree-phinodes.c (find_phi_node_for): Remove.
1076 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1078 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
1079 Remove calls to verify_dominators and
1080 verify_loop_structure.
1081 (tree_unswitch_single_loop): Call update_ssa.
1082 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
1085 (delete_tree_ssa): Assert that need_ssa_update_p returns
1087 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
1088 * tree-vectorizer.c (allocate_new_names, rename_def_op,
1089 free_new_names): Remove. Update all users.
1090 (rename_use_op): Call get_current_def.
1091 (rename_variables_in_bb): Do not handle any real or
1093 (slpeel_update_phis_for_duplicate_loop): Call
1094 get_current_def and set_current_def instead of using
1096 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
1097 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
1098 ssa_names_to_replace and delete_update_ssa.
1099 * doc/invoke.texi: Document --param min-virtual-mappings
1100 and --param virtual-mappings-ratio.
1102 2005-04-22 Diego Novillo <dnovillo@redhat.com>
1104 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
1105 for newly created PHI nodes.
1106 Call create_new_def_for for every new V_MAY_DEF and
1107 V_MUST_DEF on the copied statement.
1108 (struct ssa_name_map_entry): Remove.
1109 (ssa_name_map_entry_hash): Remove.
1110 (ssa_name_map_entry_eq): Remove.
1111 (allocate_ssa_names): Remove.
1112 (rewrite_to_new_ssa_names_def): Remove.
1113 (rewrite_to_new_ssa_names_use): Remove.
1114 (rewrite_to_new_ssa_names_bb): Remove.
1115 (rewrite_to_new_ssa_names): Remove.
1116 (tree_duplicate_sese_region): Remove variables ver,
1117 definitions, phi, ssa_name_map and bi.
1118 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
1120 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1121 update_ssa instead of rewrite_ssa_into_ssa.
1122 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
1124 (find_uses_to_rename_use): Add argument 'need_phis'.
1125 (find_uses_to_rename_stmt): Do not scan virtual operands.
1126 (find_uses_to_rename): Only scan PHI nodes for
1128 (rewrite_into_loop_closed_ssa): Call update_ssa.
1129 (check_loop_closed_ssa_use): Ignore virtual operands.
1130 (check_loop_closed_ssa_stmt): Likewise.
1131 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
1133 (rename_variables, set_phi_def_stmts): Remove.
1134 (tree_duplicate_loop_to_header_edge): Reformat comment.
1135 Remove variables BB, I and DEFINITIONS.
1136 Call need_ssa_update_p.
1138 (lv_adjust_loop_header_phi): Reformat comment.
1139 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
1140 (marked_for_rewrite_p, any_marked_for_rewrite_p,
1141 mark_for_rewrite, unmark_all_for_rewrite,
1142 marked_ssa_names): Remove. Update all users.
1143 (release_ssa_name): If VAR has been registered for SSA
1144 updating, do nothing.
1145 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
1146 (build_assert_expr_for): Call register_new_name_mapping.
1147 (insert_range_assertions): Update call to update_ssa.
1148 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
1149 marked_for_rewrite_p, any_marked_for_rewrite_p,
1150 marked_ssa_names): Remove.
1152 2005-04-22 Jeff Law <law@redhat.com>
1154 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
1155 (restore_currdefs_to_original_value): Likewise.
1156 (register_definitions_for_stmt): Likewise.
1157 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
1158 for each variable. Do not allocate/free block_defs_stack either.
1159 Do not iterate if we just thread jumps. Only iterate if the
1160 tree_cleanup_cfg does useful work (temporary).
1161 (dom_opt_initialize_block): No longer push a marker on
1163 (dom_opt_finalize_block): Removal call to restore currdefs.
1164 Relax restrictions for recording edge equivalences.
1165 (record_equivalences_from_phis): No longer need to track
1167 (optimize_stmt): Similarly.
1168 (thread_across_edge): Simplify by removing the requirement that
1169 statements in the block we are threading through must be nops.
1170 (initialize_hash_element): Handle GOTO_EXPR.
1172 2005-04-22 David S. Miller <davem@davemloft.net>
1174 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
1176 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
1177 fix check on CONST_DOUBLE mode. It should be VOIDmode
1178 when it is representing an integer.
1180 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1182 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
1183 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1184 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
1185 find_char_info_specifier_index,
1186 find_length_info_modifier_index): Likewise.
1187 * c-typeck.c (composite_type, pop_init_level): Likewise.
1188 * combine.c (cant_combine_insn_p, try_combine): Likewise.
1189 * cse.c (cse_insn): Likewise
1190 * dominance.c (calc_dfs_tree): Likewise
1191 dwarf2out.c (loc_descriptor_from_tree_1,
1192 add_abstract_origin_attribute, force_decl_die,
1193 force_type_die): Likewise
1194 emit-rtl.c (operand_subword_force): Likewise
1195 explow.c (hard_function_value): Likewise
1196 expmed.c (store_bit_field, expand_divmod,
1197 emit_store_flag_force): Likewise
1198 expr.c (emit_move_multi_word, store_expr,
1199 expand_expr_real_1): Likewise
1200 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
1201 output_operand): Likewise
1202 flow.c (recompute_reg_usage): Likewise
1203 * function.c (assign_stack_temp_for_type, assign_temp,
1204 handle_epilogue_set): Likewise
1205 * genextract.c (main): Likewise
1206 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
1207 gimplify_modify_expr_rhs, gimplify_expr): Likewise
1208 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
1209 ready_remove, rm_line_notes, rm_other_notes,
1210 schedule_block): Likewise
1211 mips-tfile.c (copy_object, out_of_bounds): Likewise
1213 2005-04-22 David Edelsohn <edelsohn@gnu.org>
1216 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
1217 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
1218 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
1219 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
1221 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
1223 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1225 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
1226 (gcc_tree_to_linear_expression): Convert to heap allocated
1228 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1229 lbv_to_gcc_expression, lle_to_gcc_expression,
1230 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1231 perfect_nestify): Likewise.
1232 lambda.h (gcc_loopnest_to_lambda_loopnest,
1233 lambda_loopnest_to_gcc_loopnest): Likewise.
1234 tree-loop-linear.c (linear_transform_loops): Likewise.
1236 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1238 * config/sparc/predicates.md (arith_double_operand): Use
1239 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
1240 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
1241 (DImode, DFmode constant splitters): Likewise. Remove code for
1242 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
1243 (logical constant splitters): Use const_int_operand predicate.
1244 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
1245 HOST_BITS_PER_WIDE_INT < 64.
1247 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1249 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
1250 gcc_unreachable as appropriate.
1251 (force_mode, emit_move_sequence, singlemove_string,
1252 output_move_double, output_fp_move_double, find_addr_reg,
1253 output_block_move, output_block_clear, output_and,
1254 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
1255 pa_adjust_cost, pa_issue_rate, print_operand,
1256 output_global_address, output_arg_descriptor, output_cbranch,
1257 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
1258 output_call): Likewise.
1259 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
1260 prefetch, prefetch_cc, prefetch_nocc): Likewise.
1262 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
1264 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
1265 _gcov_pow2_profiler and _gcov_one_value_profiler.
1266 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
1267 (GTFILES): Add $(srcdir)/tree-profile.c.
1268 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
1269 __gcov_one_value_profiler): Declare.
1270 * gimplify.c (force_gimple_operand): Check whether the statements
1271 should be produced in ssa form.
1272 (force_gimple_operand_bsi): New function.
1273 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
1274 __gcov_one_value_profiler): New functions.
1275 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
1276 the profiled value is a power of two or not.
1277 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
1278 * tree-flow.h (in_ssa_p): Declare.
1279 (force_gimple_operand_bsi): Declare.
1280 * tree-into-ssa.c (in_ssa_p): New variable.
1281 (rewrite_into_ssa): Set in_ssa_p.
1282 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
1283 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
1284 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
1285 tree_one_value_profiler_fn): New variables.
1286 (tree_init_edge_profiler): Initialize the profiler function decls.
1287 (tree_gen_edge_profiler): Use global gcov_type_node.
1288 (prepare_instrumented_value): New function.
1289 (tree_gen_interval_profiler, tree_gen_interval_profiler,
1290 tree_gen_one_value_profiler): Call the library functions instead of
1291 creating instrumentation code.
1292 * tree.c (build_fn_decl): New function.
1293 * tree.h (build_fn_decl): Declare.
1294 * value-prof.c (rtl_divmod_values_to_profile,
1295 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
1296 tree_mod_pow2_value_transform, tree_find_values_to_profile):
1297 Do not handle may_be_other and precise values of exponents at pow2
1299 (tree_mod_subtract_transform): Reflect that value field of
1300 histogram has changed meaning.
1301 (tree_divmod_values_to_profile): Record the values correctly.
1302 (tree_values_to_profile): Update comment.
1303 * value-prof.h (struct histogram_value_t): Remove pow2 data.
1305 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
1307 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
1310 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1312 * config/i386/i386.md (length_immediate): Use gcc_assert or
1313 gcc_unreachable, as appropriate.
1314 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
1315 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
1316 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
1317 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
1318 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1319 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
1320 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
1321 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
1322 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
1323 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
1324 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
1325 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1326 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
1327 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
1328 *prefetch_sse_rex): Likewise.
1329 * config/i386/predicates.md (x86_64_immediate_operand,
1330 x86_64_zext_immediate_operand, symbolic_operand,
1331 no_seg_address_operand, aligned_operand,
1332 memory_displacement_operand): Likewise.
1333 * config/i386/sse.md (*mov<mode>_internal,
1334 *movv2df_internal): Likewise.
1336 2005-04-22 Jan Hubicka <jh@suse.cz>
1338 * Makefile.in (ipa.o, ipa-inline.o): New files.
1339 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
1340 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
1341 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
1342 * cgraphunit.c (cgraph_default_inline_p,
1343 cgraph_decide_inlining_incrementally, ncalls_inlined,
1344 nfunctions_inlined, initial_insns, overall_insns,
1345 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
1346 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1347 cgraph_mark_inline, cgraph_check_inline_limits,
1348 cgraph_default_inline_p, cgraph_recursive_inlining_p,
1349 update_callee_keys, lookup_recursive_calls,
1350 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
1351 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
1352 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
1353 pass_ipa_inline): Move to ipa-inline.c
1354 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
1356 * ipa-inline.c: New file.
1358 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1360 * doc/invoke.texi (SPARC options): Document that -mapp-regs
1361 is turned off by default on Solaris.
1363 2005-04-21 Roger Sayle <roger@eyesopen.com>
1365 * c-common.h (objc_build_method_signature): Update prototype.
1366 * stub-objc.c (objc_build_method_signature): Update the stub
1367 implementation to accept and ignore additional parameter.
1368 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
1369 the value of ellipsis to objc_build_method_signature instead
1370 of setting TREE_OVERFLOW on the parms TREE_LIST node.
1372 2005-04-21 Geoffrey Keating <geoffk@apple.com>
1374 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
1375 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
1376 gen_rtx_* not gen_rtx_fmt_*.
1377 (rs6000_emit_vector_select): Likewise.
1378 (rs6000_emit_sync): New.
1379 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
1380 (larx, stcx, cmp): New mode substitutions.
1381 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
1382 UNSPEC_ISYNC): New constants.
1383 (rlwinm): Give name.
1384 (memory_barrier, isync, lwsync): New insns.
1385 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
1386 (sync_lock_release<mode>): New expander.
1387 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
1388 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
1389 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
1390 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
1391 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
1392 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
1393 (sync_add<mode>_internal, sync_addshort_internal,
1394 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
1395 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
1396 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
1398 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
1399 is the memory before, not after, the operation. Clarify
1400 barrier requirements.
1402 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1404 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
1405 * lambda.h (lambda_vector_min_nz): Likewise.
1406 * langhooks.h (struct lang_hooks_for_types,
1407 struct lang_hooks): Likewise.
1408 * output.h (assemble_integer, this_is_asm_operands): Likewise.
1411 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1413 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
1414 comments to avoid 'abort'. Use gcc_assert as necessary.
1415 * opts.c (common_handle_option): Likewise.
1416 * pretty-print.c (pp_base_format_text): Likewise.
1417 * print-rtl.c (print_rtx): Likewise.
1418 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
1419 * regmove.c (try_auto_increment): Likewise.
1420 * reload.c (find_valid_class, find_reloads_toplev,
1421 find_equiv_reg): Likewise.
1422 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
1423 merge_assigned_reloads): Likewise.
1424 * tree-inline.c (inline_forbidden_p_1,
1425 estimate_num_insns_1): Likewise.
1426 * tree-optimize.c (execute_todo): Likewise.
1427 * tree-outof-ssa.c (eliminate_phi): Likewise.
1428 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
1429 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
1430 * tree-ssa-operands.c (parse_ssa_operands,
1431 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
1432 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
1433 * tree-ssanames.c (release_ssa_name): Likewise.
1434 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
1435 walk_tree): Likewise.
1437 * tree-ssa-operands.c (verify_abort): Fold into ..
1438 (verify_imm_links): ... here.
1440 2005-04-21 Richard Henderson <rth@redhat.com>
1442 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1443 on non-memory operand for previous inversion.
1445 2005-04-21 Devang Patel <dpatel@apple.com>
1447 PR optimization/20994
1448 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1449 x = !(a == b) : p , q;.
1450 (pass_if_conversion): Verify stmts and flow.
1452 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1454 * optabs.c (gen_conditional_trap): Restore #define.
1456 * alias.c (true_dependence): Remove 'abort' from comments. Use
1457 gcc_assert and gcc_unreachable as appropriate.
1458 (canon_true_dependence): Likewise.
1459 * bb-reorder.c (connect_traces): Likewise.
1460 * c-common.c (c_add_case_label): Likewise.
1461 * c-decl.c (finish_function): Likewise.
1462 * caller-save.c (insert_restore, insert_save): Likewise.
1463 * cfg.c (update_bb_profile_for_threading): Likewise.
1464 * cfganal.c (flow_active_insn_p): Likewise.
1465 * cfgexpand.c (add_reg_br_prob_note): Likewise.
1466 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1467 cfg_layout_merge_blocks): Likewise.
1468 * ifcvt.c (cond_exec_process_insns, merge_if_block,
1469 find_if_block): Likewise.
1470 * integrate.c (allocate_initial_values): Likewise.
1471 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1472 swap_condition, unsigned_condition, signed_condition,
1473 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1474 reg_or_subregno): Likewise.
1475 * lambda-code.c (lambda_compute_auxillary_space,
1476 lambda_transform_legal_p): Likewise.
1477 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1478 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1479 lhd_incomplete_type_error, lhd_expand_expr,
1480 lhd_types_compatible_p, lhd_tree_size): Likewise.
1481 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1482 * local-alloc.c (update_equiv_regs): Likewise.
1483 * loop-unroll.c (peel_loop_completely
1484 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1485 peel_loop_simple, unroll_loop_stupid,
1486 analyze_iv_to_split_insn): Likewise.
1487 * loop.c (gen_prefetch, find_and_verify_loops,
1488 basic_induction_var): Likewise.
1489 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1490 * value-prof.c (tree_find_values_to_profile): Likewise.
1491 * varasm.c (named_section, default_assemble_integer,
1492 decode_addr_const): Likewise.
1494 2005-04-21 Alan Modra <amodra@bigpond.net.au>
1495 Fariborz Jahanian <fjahanian@apple.com>
1497 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1498 portion of argument passed in fpr.
1499 * expr.c (emit_push_insn): Fix computation of 'offset' used to
1500 decide on partial argument save on stack.
1502 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1504 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1507 2005-04-21 Jan Hubicka <jh@suse.cz>
1509 * cgraphunit.c: Include tree-pass.h
1510 (cgraph_decide_recursive_inlining,
1511 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1512 cgraph_decide_inlining): Dump goes to dump_file.
1513 (cgraph_optimize): Call ipa passes instead of inliner.
1514 (cgraph_gate_inlining, pass_ipa_inline): New.
1515 * tree-optimize.c (all_ipa_passes): New static variable.
1516 (register_one_dump_file): Dead with IPA passes.
1517 (register_dump_files): Likewise.
1518 (init_tree_optimization_passes): Initialize IPA passes.
1519 (execute_todo): Do cgraph dump when asked to, do not dump function body
1521 * tree-pass.h (TODO_dump_cgraph): New macro.
1522 (ipa_passes): Declare.
1523 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1525 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1527 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1528 gcc_assert instead of abort.
1529 (classify_argument, examine_argument, construct_container,
1530 contains_128bit_aligned_vector_p, ix86_check_movabs,
1531 standard_80387_constant_opcode, standard_80387_constant_rtx,
1532 ix86_initial_elimination_offset, ix86_compute_frame_layout,
1533 pro_epilogue_adjust_stack, ix86_expand_epilogue,
1534 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1535 legitimize_tls_address, output_pic_addr_const,
1536 i386_output_dwarf_dtprel, put_condition_code, print_reg,
1537 get_some_local_dynamic_name, print_operand, print_operand_address,
1538 output_387_binary_op, emit_i387_cw_initialization,
1539 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1540 ix86_expand_clear, ix86_expand_binary_operator,
1541 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1542 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1543 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1544 ix86_expand_branch, ix86_expand_setcc,
1545 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1546 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1547 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1548 memory_address_length, ix86_attr_length_immediate_default,
1549 ix86_attr_length_address_default, ix86_agi_dependant,
1550 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1551 ix86_expand_binop_builtin, ix86_force_to_memory,
1552 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1553 x86_emit_floatuns): Likewise.
1554 * config/i386/netware.c (gen_regparm_prefix,
1555 i386_nlm_strip_name_encoding): Likewise.
1556 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1558 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1560 * optabs.c (gen_condiational_trap): Remove #define.
1561 (add_equal_note): Assertify. Remove explicit indirection from
1562 call via function pointer.
1563 (expand_ternary_op, expand_simple_binop, expand_binop,
1564 expand_twoval_unop, expand_twoval_binop,
1565 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1566 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
1567 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1568 prepare_float_lib_cmp, emit_conditional_move,
1569 emit_conditional_add, gen_add2_insn, gen_add3_insn,
1570 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1571 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1572 vector_compare_rtx, expand_vec_cond_expr): Likewise.
1574 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1576 * vec.h: Update API to separate allocation mechanism from type.
1577 (VEC_safe_grow): New.
1578 * vec.c (calculate_allocation): New.
1579 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1580 (vec_gc_free, vec_heap_free): Remove.
1581 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
1583 (mangle_macro_name): New.
1584 (struct macro_def): New.
1585 (struct macro): Add multiple argument values.
1586 (macro_expans_end): New.
1587 (push_macro_expansion): Chain on new macro. Process multiple
1588 args, create follow on expansion. Return follow on argument.
1589 (macro_input): Deal with multiple arguments.
1591 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1592 (struct tree_binfo): Adjust.
1593 * basic-block.h: Define VEC(edge,gc).
1594 (struct edge_def): Adjust.
1595 (struct basic_block_def, struct edge_iterator): Likewise.
1596 (ei_container, ei_start_1, ei_last_1): Likewise.
1597 * cfg.c (connect_src, connect_dest): Likewise.
1598 * cfgrtl.c (force_nonfallthru_and_redirect)
1599 * dbxout.c (dbxout_type)
1600 * dwarf2out.c (gen_member_die)
1601 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1602 (gcc_tree_to_linear_expression): Adjust.
1603 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1604 lbv_to_gcc_expression, lle_to_gcc_expression,
1605 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1606 perfect_nestify): Likewise.
1607 * lambda.h (gcc_loopnest_to_lambda_loopnest,
1608 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1609 * profile.c (instrument_values): Adjust.
1610 * tree-cfg.c (modified_noreturn_calls): Adjust.
1611 (remove_fallthru_edge): Likewise.
1612 * tree-dump.c (dequeue_and_dump): Adjust.
1613 * tree-flow-inline.h (mark_stmt_modified): Adjust.
1614 * tree-flow.h (modified_noreturn_calls): Adjust.
1615 (tree_on_heap): Remove. (yay!)
1616 (register_new_def): Adjust.
1617 * tree-into-ssa.c: Define VEC(int,heap).
1618 (block_defs_stack): Adjust.
1619 (find_idf, insert_phi_nodes, register_new_def,
1620 rewrite_initialize_block, rewrite_finalize_block,
1621 register_new_update_single, rewrite_update_init_block,
1622 rewrite_update_fini_block, rewrite_blocks,
1623 ssa_rewrite_finalize_block, ssa_register_new_def,
1624 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1625 * tree-loop-linear.c (linear_transform_loops): Adjust.
1626 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1627 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1628 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1629 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1630 vrp_variables_stack): Adjust declarations.
1631 (tree_ssa_dominator_optimize): Adjust.
1632 (dom_opt_initialize_block, remove_local_expressions_from_table,
1633 restore_nonzero_vars_to_original_value,
1634 restore_vars_to_original_value,
1635 restore_currdefs_to_original_value, dom_opt_finalize_block,
1636 record_var_is_nonzero, record_cond, record_const_or_copy_1,
1637 optimize_stmt, update_rhs_and_lookup_avail_expr,
1638 lookup_avail_expr, record_range): Likewise.
1639 * tree-ssa-pre.c: Define VEC(basic_block,heap).
1640 (compute_antic_aux): Adjust.
1641 (inserted_exprs, create_expression_by_pieces,
1642 insert_into_preds_of_block, eliminate, mark_operand_necessary,
1643 remove_dead_inserted_code, fini_pre): Likewise.
1644 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1645 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
1646 ssa_prop_init): Likewise.
1647 * tree-ssa.c: Define VEC(bitmap,heap).
1648 (verify_name_tags): Adjust.
1649 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1650 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1651 tree_divmod_values_to_profile, tree_find_values_to_profile,
1652 value_profile_transformations): Likewise.
1653 * value-prof.h: Define VEC(histogram_value,heap).
1654 * varasm.c: Remove alias_pair pointer typedef, define
1656 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1658 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1659 not a pointer to it. Create an object vector.
1660 (extern_symbols): Turn into an object vector.
1661 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1663 2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
1666 * Makefile.in (tree-chrec.o): Depend on params.h.
1667 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1669 * tree-chrec.c: Depend on params.h. Replace build with buildN,
1670 and fold build with fold_buildN.
1671 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1672 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1673 (tree_contains_chrecs): Compute an estimation of the size of the
1675 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1676 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1677 * tree-scalar-evolution.c (simple_iv): Ditto.
1678 * doc/invoke.texi (scev-max-expr-size): Documented.
1680 2005-04-21 Richard Sandiford <rsandifo@redhat.com>
1682 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1683 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1684 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1685 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1686 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1687 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1688 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1689 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1690 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1691 (darwin_fix_and_continue_switch): Delete.
1692 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1693 (SUBTARGET_SWITCHES): Delete.
1694 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1695 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1696 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1697 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1698 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1699 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1700 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1701 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1702 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1703 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1704 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1705 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1706 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1707 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1708 (TARGET_64BIT): Undef before redefining.
1709 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1710 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1711 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1712 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1713 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1714 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1715 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1716 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1717 (ix86_debug_arg_string, ix86_debug_addr_string)
1718 (ix86_align_loops_string, ix86_align_jumps_string)
1719 (ix86_align_funcs_string): Delete.
1720 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1721 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1722 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1723 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1724 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1725 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1726 (SUBTARGET_SWITCHES): Delete.
1727 * config/i386/i386.c (ix86_debug_arg_string): Delete.
1728 (ix86_debug_addr_string): Delete.
1729 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1730 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1731 (ix86_align_loops_string, ix86_align_jumps_string)
1732 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1733 (ix86_align_funcs_string): Make static.
1734 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1735 (ix86_handle_option): New function.
1736 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1737 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1738 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1739 of darwin_fix_and_continue_switch.
1740 (darwin_one_byte_bool): Delete.
1741 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1742 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1743 to darwin_one_byte_bool.
1744 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1745 * config/i386/djgpp.opt, config/i386/i386.opt,
1746 * config/i386/sco5.opt: New files.
1748 2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1750 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1751 fp_zero_operand, fp_register_operand, intreg_operand,
1752 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1753 call_operand, call_operand_address, tgd_symbolic_operand,
1754 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1755 symbolic_operand, symbolic_memory_operand, label_ref_operand,
1756 sp64_medium_pic_operand, data_segment_operand,
1757 text_segment_operand, splittable_symbolic_memory_operand,
1758 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1759 eq_or_neq, normal_comp_operator, noov_compare_op,
1760 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1761 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1762 const64_operand, const64_high_operand, arith11_operand,
1763 arith10_operand, arith_double_operand, arith_double_4096_operand,
1764 arith_double_add_operand, arith11_double_operand,
1765 arith10_double_operand, small_int, small_int_or_double,
1766 uns_small_int, uns_arith_operand, clobbered_register,
1767 input_operand, compare_operand): Delete.
1768 (sparc_emit_set_const32): Use predicates in assertion. Remove special
1769 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1770 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1771 (GEN_HIGHINT64, GEN_INT64): Delete.
1772 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1773 gen_safe_XOR64): Adjust for above deletion.
1774 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1775 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1776 (legitimate_constant_p): Use const_zero_operand instead.
1777 (sparc_extra_constraint_check): Likewise.
1778 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1779 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1780 (PREDICATE_CODES): Delete.
1781 * config/sparc/sparc.md: Include predicates.md.
1782 (All patterns): Adjust for new predicate names.
1783 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1784 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1785 (movdi): Use general_operand predicate.
1786 (movdi_sp64_dbl): Delete.
1787 (movdi_const64_special): Add 'N' constraint.
1788 (movdicc): Use arith10_operand predicate.
1789 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1790 (movdi_cc_reg_sp64): Use arith10_operand predicate.
1791 (movdi_cc_reg_sp64_trunc): Delete.
1792 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1793 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1794 (subdi3_sp32): Delete.
1795 (subdi3_insn_sp32): Change to define_insn_and_split.
1796 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1797 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1798 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1799 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1800 small_int_operand predicate.
1801 (divdi3, udivdi3): Use arith_operand predicate.
1802 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1803 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1804 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1805 (xordi3_sp64_dbl): Delete.
1806 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1807 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1808 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1809 cmp_ccx_set_not): Use arith_operand predicate.
1810 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1811 * config/sparc/predicates.md: New file.
1813 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1815 PR tree-optimization/14846
1816 * fold-const.c (fold_single_bit_test_into_sign_test): New,
1818 (fold_single_bit_test): ... here.
1819 (fold_binary): Call fold_single_bit_test_into_sign_test
1820 instead of fold_single_bit_test.
1822 2005-04-20 James E Wilson <wilson@specifixinc.com>
1825 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1826 is another declaration.
1828 2005-04-21 Hans-Peter Nilsson <hp@axis.com>
1830 * config/cris/predicates.md: New file.
1831 * config/cris/cris-protos.h (cris_store_multiple_op_p)
1832 (cris_movem_load_rest_p): Declare.
1833 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1834 (cris_movem_load_rest_p): Ditto. Globalize.
1835 (cris_bdap_operand, cris_bdap_biap_operand,
1836 cris_orthogonal_operator, cris_commutative_orth_op,
1837 cris_operand_extend_operator,
1838 cris_additive_operand_extend_operator, cris_extend_operator,
1839 cris_plus_or_bound_operator, cris_mem_op,
1840 cris_general_operand_or_symbol,
1841 cris_general_operand_or_gotless_symbol,
1842 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1843 cris_load_multiple_op): Remove predicate functions.
1844 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1845 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1846 * config/cris/cris.h (PREDICATE_CODES): Don't define.
1847 * config/cris/cris.md: Include predicates.md.
1848 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1850 2005-04-20 Ian Lance Taylor <ian@airs.com>
1852 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1853 * c-common.h (STMT_EXPR_STMT): Don't define.
1854 (STMT_EXPR_NO_SCOPE): Don't define.
1855 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1856 * c-pretty-print.c (pp_c_primary_expression): Likewise.
1857 (pp_c_expression): Likewise.
1859 2005-04-20 Richard Henderson <rth@redhat.com>
1862 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1864 2005-04-20 Jeff Law <law@redhat.com>
1866 * reload1.c (reload): Ignore equivalences between pseudos and
1869 2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
1872 * c-tree.h (struct c_label_list): Update comment.
1873 (struct c_label_context): Rename to struct c_label_context_se.
1874 (label_context_stack): Rename to label_context_stack_se.
1875 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1876 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1877 c_end_vm_scope): New.
1878 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1879 * c-decl.c (pop_scope): Call c_end_vm_scope.
1880 (pushdecl): Call c_begin_vm_scope for variably modified
1882 (define_label): Check for jumping into scope of identifier with
1883 variably modified type. Push label on stack for those defined at
1884 current context of identifiers with variably modified type.
1885 (start_function): Create stack level for context of identifiers
1886 with variably modified type.
1887 (finish_function): Pop stack level for context of identifiers with
1888 variably modified type.
1889 * c-typeck.c (label_context_stack): Rename to
1890 label_context_stack_se.
1891 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1892 (c_finish_goto_label): Check for jumping into scope of identifier
1893 with variably modified type. Push label on stack for those jumped
1894 to from current context of identifiers with variably modified
1896 (struct c_switch): Add blocked_vm.
1897 (c_start_case): Initialize blocked_vm.
1898 (do_case): Check blocked_vm.
1899 (c_finish_case): Add comment.
1900 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1901 variable label_context_stack.
1903 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1905 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1906 conditional_replacement, value_replacement, abs_replacement,
1908 (replace_phi_edge_with_variable): Remove argument BB.
1909 (conditional_replacement, value_replacement,
1910 minmax_replacement, abs_replacement): Remove argument PHI_BB.
1911 Update a call to replace_phi_edge_with_variable.
1913 * tree-ssa-phiopt.c: Fix comments.
1915 2005-04-20 Michael Matz <matz@suse.de>
1918 * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1921 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1923 * tree-ssa-phiopt.c: Fix comment typos.
1925 PR tree-optimization/21116
1926 * tree-ssa-phiopt.c: Fix a typo.
1928 2005-04-19 Richard Henderson <rth@redhat.com>
1930 * builtins.c (expand_builtin_sync_operation): Revert last change.
1931 * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1933 (expand_compare_and_swap_loop): Likewise.
1934 (expand_sync_operation): Remove fallback from NAND to AND; invert
1935 memory operand when expanding from cmpxchg.
1936 (expand_sync_fetch_operation): Likewise.
1937 * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1940 * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1941 when implementing NAND. Fix double-add for AFTER.
1942 * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1943 (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1944 (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
1946 (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1949 * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1950 to return old memory value.
1951 (sync_compare_and_swap_cc<IMODE>): Likewise.
1953 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1954 return pre-reload. Don't consider output or anti dependencies.
1955 * config/ia64/sync.md (IMODE): New.
1956 (modesuffix): Add QI and HI.
1957 (memory_barrier): Simplify expansion.
1958 (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1959 (cmpxchg_acq_<IMODE>): Likewise.
1960 (sync_lock_test_and_set<IMODE>): Likewise.
1961 (sync_lock_release<IMODE>): Likewise.
1963 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1965 * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1968 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1970 * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
1972 2005-04-20 Michael Pogue <michael.pogue@sun.com>
1973 Joseph S. Myers <joseph@codesourcery.com>
1975 * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1976 * c-typeck.c (build_c_cast): Check these options.
1977 * doc/invoke.texi: Document these options.
1979 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1981 * tree-ssa-phiopt.c: Update a comment about the pass.
1983 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
1985 * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1986 config/mcore/mcore.c: Fix comment typos.
1988 2005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
1990 * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1991 * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1993 2005-04-19 Paul Brook <paul@codesourcery.com>
1995 * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
1997 2005-04-19 Andrew Haley <aph@redhat.com>
2000 * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
2001 looking at a field's bitpos.
2003 2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2005 * system.h (fopen, fdopen, freopen): Define these to the unlocked
2006 libiberty functions.
2008 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
2010 PR tree-optimization/21096
2011 * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2013 2005-04-19 Alan Modra <amodra@bigpond.net.au>
2016 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
2017 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2019 2005-04-19 Alexandre Oliva <aoliva@redhat.com>
2021 * tree-cfg.c (dump_function_to_file): Use cfun info only if it
2022 refers to the function being dumped.
2024 2005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
2026 * varasm.c (assemble_start_function): Remove reset of in_section.
2028 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2030 PR tree-optimization/21085
2031 * fold-const (fold_binary): Don't change X % -C to X % C if C has
2034 2005-04-19 Ben Elliston <bje@au.ibm.com>
2036 * doc/invoke.texi (Optimize Options): Refer to the correct
2037 optimisation flag -ftree-dominator-opts, not -ftree-dom.
2039 2005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
2041 * config/rs6000/rs6000.c (machopic_output_stub): Increase
2042 alloca argument to be big enough.
2044 2005-04-18 Alexandre Oliva <aoliva@redhat.com>
2047 * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
2050 2005-04-18 Tom Tromey <tromey@redhat.com>
2052 * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
2055 2005-04-18 Richard Henderson <rth@redhat.com>
2057 * config/alpha/alpha.c (alpha_split_atomic_op): New.
2058 (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
2059 (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
2060 * config/alpha/alpha-protos.h: Update.
2061 * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
2062 (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
2063 (attr type): Add ld_l, st_c, mb.
2064 (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
2065 iornotsi3, xorsi_internal, xornotsi3): New.
2066 * config/alpha/ev4.md (ev4_ld): Add ld_l.
2067 (ev4_ist_c, ev4_mb): New.
2068 * config/alpha/ev5.md (ev5_st): Add st_c, mb.
2070 * config/alpha/ev6.md (ev6_ild): Add ld_l.
2071 (ev6_ist): Add st_c.
2073 * config/alpha/sync.md: New file.
2075 2005-04-18 Richard Henderson <rth@redhat.com>
2077 * builtins.c (expand_builtin_sync_operation): Fold nand to and
2080 * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2082 2005-04-18 Devang Patel <dpatel@apple.com>
2084 * config/rs6000/atlivec.md (mulv4si3): New pattern.
2086 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2088 PR tree-optimization/20922
2089 * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
2090 Fold X + c >= X and fold X - c <= X to true.
2092 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2094 * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
2096 (emergency_labeled_state_free): Likewise.
2098 2005-04-18 Nick Clifton <nickc@redhat.com>
2100 * config/h8300/h8300.md (jump): Remove prescan parameter from
2101 calls to final_scan_insn.
2103 * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
2104 parameter from calls to final_scan_insn.
2106 * config.gcc (m68hc12): Use the m68hc11.opt file for target
2108 (v850e, v850e1): Use the v850.opt file for target specific
2111 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
2113 PR tree-optimization/21001
2114 * tree-optimize.c (init_tree_optimization_passes): Move the
2115 first pass_forwprop immediately before pass_vrp.
2117 2005-04-17 Ian Lance Taylor <ian@airs.com>
2119 * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
2120 * c-common.c (c_sizeof_or_alignof_type): Change second parameter
2121 from enum tree_code op to bool is_sizeof.
2122 * c-common.h (c_sizeof_or_alignof_type): Update declaration.
2123 (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
2124 * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
2126 (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
2128 (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
2131 2005-04-17 Ian Lance Taylor <ian@airs.com>
2133 * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2135 2005-04-17 Richard Henderson <rth@redhat.com>
2137 * config/alpha/alpha.c (va_list_skip_additions): Only define if
2139 (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
2140 (alpha_stdarg_optimize_hook): Likewise. Allow for one more round
2141 of indirection through ssa names while looking for the gpr counter
2143 (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
2144 saved va_list_gpr_size and va_list_fpr_size.
2146 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2148 * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
2149 both pointers or both integers.
2151 * tree-vrp.c (maybe_add_assert_expr): Don't assert
2152 ASSERT_EXPRs for single-use variable.
2154 * tree-into-ssa.c: Fix a comment typo.
2156 2005-04-17 Richard Sandiford <rsandifo@redhat.com>
2158 * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
2159 -mipsN before forcing a default of -mips2.
2161 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2163 * predict.h (IS_TAKEN): Remove.
2164 * rtl.h (NOTE_PREDICTION): Likewise.
2166 * modulo-sched.c (CFG_HOOKS): Remove.
2168 * c-parser.c (N_C_TTYPES): Remove.
2170 * tree-flow-inline.h (get_stmt_operands): Remove.
2171 * lambda-code.c, tree-ssa-loop-unswitch.c,
2172 tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2173 tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
2174 tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
2175 calls to get_stmt_operands.
2176 * doc/tree-ssa.texi: Don't mention get_stmt_operands.
2178 2005-04-17 Richard Henderson <rth@redhat.com>
2181 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
2182 of CUMULATIVE_ARGS past the last named argument.
2183 (alpha_va_start): Expect pretend_args_size only if strictly less than
2186 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2189 * builtins.c (expand_builtin_strcat): Convert the result of
2190 strlen to the right type.
2191 * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
2192 avoid creating type mismatches.
2193 <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
2196 * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2198 2005-04-16 Richard Henderson <rth@redhat.com>
2201 * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
2202 Use the mode of boolean_type_node when the user doesn't provide one.
2203 * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2205 2005-04-16 Alexandre Oliva <aoliva@redhat.com>
2208 * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
2211 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
2214 2005-04-16 Roger Sayle <roger@eyesopen.com>
2215 Steven Bosscher <stevenb@suse.de>
2217 * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
2218 (fold_unary_to_constant): Likewise.
2220 2005-04-16 Kazu Hirata <kazu@cs.umass.edu>
2222 * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
2225 2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
2227 * doc/install.texi (Specific): Avoid using asterisks in @anchor
2228 names related to target triplets.
2229 Remove i?86-*-esix from platform directory.
2230 Remove powerpc-*-eabiaix from platform directory.
2232 2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
2235 * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
2236 falling through from SUBREG case to REG.
2238 2005-04-15 Roger Sayle <roger@eyesopen.com>
2240 * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
2241 (fold_binary): Update comment mentioning fold_relational_hi_lo.
2242 (fold_binary_to_constant): Simplify using fold_binary.
2243 (fold_unary_to_constant): Likewise, simplify using fold_unary.
2245 2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2247 * gthr-posix.c (pthread_cancel): Define.
2248 (pthread_mutexattr_init): Likewise.
2249 (pthread_mutexattr_settype): Likewise.
2250 (pthread_mutexattr_destroy): Likewise.
2252 2005-04-15 David S. Miller <davem@davemloft.net>
2255 * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2257 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2259 PR tree-optimization/21031
2260 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
2261 (forward_propagate_into_cond_1): Call it. Forward propagate
2262 integer-integer casts into COND_EXPRs.
2264 2005-04-15 Dave Korn <dave.korn@artimi.com>
2266 * gcc.c (default_compilers): Clarify obscure error message when
2267 reading from standard input.
2269 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2271 * basic-block.h (PROP_EQUAL_NOTES): Remove.
2272 * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
2274 * tree-ssa-alias.c (init_alias_info): Remove a call to
2277 2005-04-15 Andrew MacLeod <amacleod@redhat.com>
2279 * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
2280 of non-virtual PHI nodes like we use to.
2282 2005-05-15 Paolo Bonzini <bonzini@gnu.org>
2284 * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
2285 (attr_copy_rtx): Do not use it.
2287 2005-04-15 Andrew Macleod <amacleod@redhat.com>
2289 * doc/tree-ssa.texi: Grammer/abbreviation updates.
2291 2005-04-15 Diego Novillo <dnovillo@redhat.com>
2293 * tree-vect-transform.c (vectorizable_store): Mark necessary
2294 objects in the vectorized store needing renaming. Update the
2295 SSA graph for V_MAY_DEF operands in the original store.
2297 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2299 * tree-ssa-pre.c (compute_avail): It's okay to have
2300 TREE_INVARIANT's here, and value number the resulting expressions.
2301 (create_expression_by_pieces): Make sure operands that were
2302 min_invariant when we started, stay that way.
2304 2005-04-15 David Edelsohn <edelsohn@gnu.org>
2306 * doc/install.texi (*-ibm-aix*): Add comment about system limits.
2308 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2310 PR tree-optimization/20936.
2311 * tree-ssa-ccp.c (visit_assignment): Fix a typo.
2313 2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2315 * doc/invoke.texi: Fix typos.
2316 * doc/md.texi: Likewise.
2317 * doc/rtl.texi: Likewise.
2318 * doc/sourcebuild.texi: Likewise.
2319 * doc/tm.texi: Likewise.
2321 2005-04-15 Uros Bizjak <uros@kss-loka.si>
2323 PR tree-optimization/21004
2324 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
2325 and floorl in c99 mode only.
2326 * builtins.c (expand_builtin_int_roundingfn): Assert that
2327 fallback_fndecl is not NULL_TREE.
2329 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2331 * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
2332 * basic-block.h: Update the prototype for
2333 purge_all_dead_edges.
2334 * cfgexpand.c (tree_expand_cfg): Update a call to
2335 purge_all_dead_edges.
2336 * combine.c (combine_instructions): Likewise.
2337 * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
2338 rest_of_handle_cse2, rest_of_handle_gcse,
2339 rest_of_handle_postreload): likewise.
2341 2005-04-15 Alexandre Oliva <aoliva@redhat.com>
2344 * gimplify.c (gimplify_addr_expr): Compensate for removal of
2345 e.g. cv-qualification conversions.
2347 2005-04-14 Mike Stump <mrs@apple.com>
2349 * config/darwin-c.c (framework_construct_pathname): We must
2350 find all headers of a framework in the first instance of it
2351 found in the seach path.
2353 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2355 PR tree-optimization/21021
2356 * tree-vrp.c (compare_values): Work around a bug in the front
2357 end that produces a comparison of mismatched types.
2359 2004-04-14 Richard Henderson <rth@redhat.com>
2361 * config/ia64/ia64.h (enum fetchop_code): Remove.
2362 (enum ia64_builtins): Move ...
2363 * config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
2364 members except BSP and FLUSHRS.
2365 (ia64_init_builtins): Remove __sync builtins.
2366 (ia64_expand_builtin): Likewise.
2367 (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
2368 (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
2369 (ia64_expand_lock_release): Remove.
2370 * config/ia64/ia64.md (mf): Move to sync.md.
2371 (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
2372 cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
2373 * config/ia64/sync.md: New file.
2374 (memory_barrier): Rename from mf.
2375 (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
2376 (cmpxchg_acq_<I48MODE>): Likewise.
2377 (sync_lock_test_and_set<I48MODE>): Likewise.
2379 * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
2380 to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
2382 2004-04-14 Richard Henderson <rth@redhat.com>
2384 * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
2385 (ix86_compare_emitted): New.
2386 (ix86_expand_compare): Use ix86_compare_emitted if set.
2387 (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
2388 and ix86_compare_op0 are set.
2389 * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
2390 (TARGET_CMPXCHG, TARGET_XADD): New.
2391 (ix86_compare_emitted): Declare.
2392 * config/i386/i386.md: Include sync.md
2393 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
2394 (UNSPECV_XCHG, UNSPECV_LOCK): New.
2395 * config/i386/sync.md: New file.
2397 2004-04-14 Richard Henderson <rth@redhat.com>
2400 * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
2401 BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
2402 BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
2403 BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
2404 BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
2405 BT_FN_I8_VPTR_I8_I8): New.
2406 * builtins.def (DEF_SYNC_BUILTIN): New.
2407 (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
2408 BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
2409 BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
2410 BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
2411 BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
2412 BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
2413 BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
2414 BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
2415 BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
2416 BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
2417 BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
2418 BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
2419 BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
2420 BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
2421 BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
2422 BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
2423 BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
2424 BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
2425 BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
2426 BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
2427 BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
2428 BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
2429 BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
2430 BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
2431 BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
2432 BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
2433 BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
2434 BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
2435 BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
2436 BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
2437 BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
2438 BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
2439 BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2440 BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2441 BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2442 BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2443 BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2444 BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2445 BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2446 BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2447 BUILT_IN_SYNCHRONIZE: New.
2448 * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2449 as a function. Accept __sync_ as a prefix as well.
2450 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2451 expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2452 expand_builtin_lock_release): New.
2453 (expand_builtin): Call them.
2454 * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2455 neither BOTH_P nor FALLBACK_P are defined.
2456 (builtin_type_for_size): New.
2457 (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2458 (resolve_overloaded_builtin): New.
2459 * c-common.h (resolve_overloaded_builtin): Declare.
2460 (builtin_type_for_size): Declare.
2461 * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2462 * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2463 sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2464 sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2465 sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2466 sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2467 sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2468 sync_compare_and_swap_cc, sync_lock_test_and_set,
2469 sync_lock_release): New.
2470 * optabs.h: Declare them.
2471 * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2472 expand_sync_operation, expand_sync_fetch_operation,
2473 expand_sync_lock_test_and_set): Declare.
2474 * genopinit.c (optabs): Add sync optabs.
2475 * optabs.c (init_optabs): Initialize sync optabs.
2476 (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2477 expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2478 expand_sync_operation, expand_sync_fetch_operation,
2479 expand_sync_lock_test_and_set): New.
2480 * doc/extend.texi (Atomic Builtins): New section
2481 * doc/md.texi (Standard Names): Add sync patterns.
2483 2005-04-14 Alexandre Oliva <aoliva@redhat.com>
2485 * tree-eh.c (lower_try_finally_copy): Generate new code in
2486 response to goto_queue entries as if the queue was sorted by
2487 index, not pointers.
2488 (lower_try_finally_switch): Likewise.
2490 2005-04-14 Richard Henderson <rth@redhat.com>
2492 * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2493 (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
2495 (ix86_expand_fp_movcc): Update to match.
2496 (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2497 * config/i386/i386-protos.h: Update.
2498 * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2499 (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2501 2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
2503 * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2506 2005-04-14 Julian Brown <julian@codesourcery.com>
2508 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2509 link failures on ppc64 Linux.
2511 2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
2513 * config.gcc: Set cpu_type for s390.
2515 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2517 Fix PR tree-optimization/20963
2518 * tree-ssa-pre.c (compute_avail): Remove special case for
2520 (create_expression_by_pieces): Add value numbers for forced out
2523 2005-04-14 Hans-Peter Nilsson <hp@axis.com>
2525 * config/cris/cris.md: Replace references to (reg:SI 16) with
2526 (reg:SI CRIS_SRP_REGNUM).
2528 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2530 PR tree-optimization/20657
2531 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2532 create an appropriate range from it.
2534 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2536 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2537 <UNSPEC_FIST_CEIL> case.
2539 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2540 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2541 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2542 to implement lfloor and llfloor built-ins as x87 intrinsic function.
2543 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2544 (lfloor<mode>2): New expanders.
2545 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2546 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2547 to implement lceil and llceil built-ins as x87 intrinsic function.
2548 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2549 (lceil<mode>2): New expanders.
2551 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2553 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2554 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2556 2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
2559 * config/s390/s390-modes.def: Define TFmode.
2561 2005-04-13 Richard Sandiford <rsandifo@redhat.com>
2563 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2564 (JUMP_TABLES_IN_TEXT_SECTION): Define.
2565 * config/mips/mips.c (mips16_insn_length): Remove reference to
2566 JUMP_TABLES_IN_TEXT_SECTION.
2568 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2570 * simplify-rtx.c (simplify_binary_operation_1): Return
2571 scalar or vector of constant 0, depending on the xor's
2574 2005-04-13 Dale Johannesen <dalej@apple.com>
2576 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
2577 (objc-act.o): Ditto.
2578 * objc/objc-act.c (objc_gimplify_expr): New.
2579 (objc_get_callee_fndecl): New.
2580 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
2581 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
2582 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
2584 2005-04-13 Devang Patel <dpatel@apple.com>
2586 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2589 2005-04-13 Hans-Peter Nilsson <hp@axis.com>
2591 CRIS prologue as RTL.
2592 * config/cris/cris-protos.h (cris_emit_movem_store)
2593 (cris_expand_prologue): Prototype.
2594 * config/cris/cris.c (struct machine_function): New member
2596 (cfa_label_num, cris_target_asm_function_prologue): Remove.
2597 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2598 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2599 (cris_load_multiple_op, cris_return_address_on_stack)
2600 (cris_return_address_on_stack_for_return): ISO-Cify.
2601 (cris_store_multiple_op): New predicate function.
2602 (cris_expand_prologue, cris_emit_movem_store): New functions.
2603 (cris_print_operand) <case 'O'>: Handle modifications other than
2605 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2606 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2607 (cris_gen_movem_load): Rearrange slightly to make local variable
2608 src a parameter, removing osrc.
2609 (cris_setup_incoming_varargs): Set machine_function member
2610 stdarg_regs to correspond to the number of registers that need to
2612 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2614 (PREDICATE_CODES): Add cris_store_multiple_op. Make
2615 cris_general_operand_or_gotless_symbol accept UNSPEC.
2616 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2617 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2618 ("*cris_store_multiple"): New pattern. Tweak common comment above
2619 this and "*cris_load_multiple".
2620 ("prologue"): New define_expand.
2622 * config/cris/cris.md ("epilogue"): Conditionalize on
2623 TARGET_PROLOGUE_EPILOGUE.
2625 2005-04-13 Steve Ellcey <sje@cup.hp.com>
2628 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2629 fpsr 0 instead of fpsr 1.
2630 (divsf3_internal_thr): Ditto.
2631 (divdf3_internal_lat): Ditto.
2632 (divdf3_internal_thr): Ditto.
2633 (divxf3_internal_lat): Ditto.
2634 (divxf3_internal_thr): Ditto.
2636 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2638 PR tree-optimization/20913
2639 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2641 PR tree-optimization/20702
2642 * tree-vrp.c (maybe_add_assert_expr): Recurse into
2643 dominator children that haven't been walked into.
2645 2005-04-13 Julian Brown <julian@codesourcery.com>
2647 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2648 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2651 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2653 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2654 config/i386/sse.md: Fix comment typos.
2656 * genattrtab.c (NULL_ATTR): Remove.
2657 * ifcvt.c (NULL_EDGE): Likewise.
2659 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2661 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2662 NOTE_PREDICT): Remove.
2664 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2666 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2667 * configure: Regenerate.
2668 * config.in: Likewise.
2669 * system.h: Declare vsnprintf if not already declared.
2671 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2673 * optc-gen.awk: Handle stand-alone Mask records.
2674 * opth-gen.awk: Likewise.
2675 * doc/options.texi (Option file format): Document them.
2676 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2677 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2678 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2679 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2680 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2681 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2682 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2683 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2684 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2685 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2686 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2687 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2688 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2689 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2690 TARGET_LONG_DOUBLE_128): Likewise.
2691 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2692 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2693 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2694 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2695 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2696 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2697 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2698 * config/sparc/sparc.c (fpu_option_set): New global.
2699 (sparc_handle_option): New function.
2700 (sparc_override_options): Test fpu_option_set.
2701 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2702 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2703 * config/sparc/sparc.opt: New file.
2704 * config/sparc/little-endian.opt: Likewise.
2705 * config/sparc/long-double-switch.opt: Likewise.
2707 2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
2709 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2710 (bfin_handle_options): Set it if -mshared-library-id= is seen.
2711 * config/bfin/bfin.opt (mshared-library-id=): Lose
2712 Var(bfin_lib_id_given).
2714 2005-04-13 Matt Thomas <matt@3am-software.com>
2716 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2719 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2721 * rtl.h (CLEAR_RTX_FLAGS): Remove.
2723 * cgraphunit.c (INSNS_PER_CALL): Remove.
2725 * tree-ssa-forwprop.c (vars,
2726 record_single_argument_cond_exprs,
2727 substitute_single_use_vars): Remove.
2728 (forward_propagate_into_cond_1, forward_propagate_into_cond):
2730 (tree_ssa_forward_propagate_single_use_vars): Call
2731 forward_propagate_into_cond for each COND_EXPR.
2733 * tree-inline.c (INSNS_PER_STMT): Remove.
2735 2005-04-12 Richard Henderson <rth@redhat.com>
2737 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2738 (ix86_expand_sse_fp_minmax): ... from ...
2739 (ix86_expand_fp_movcc): ... here.
2740 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2741 * config/i386/i386-protos.h: Update.
2742 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2743 (sse_setccsf, sse_setccdf): Allow before reload.
2744 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2745 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2746 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2747 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2748 (anddf3, nanddf3, iordf3, xordf3): New.
2750 2005-04-12 Jeff Law <law@redhat.com>
2752 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2753 (tree-ssa-uncprop.o): Add dependencies.
2754 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2755 * tree-flow.h (remove_useless_stmts): Remove prototype.
2756 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2757 remove_useless_stmts.
2758 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2759 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2760 * tree-pass.h (pass_uncprop): Declare.
2761 * tree-ssa-uncprop.c: New file.
2763 2005-04-12 James E. Wilson <wilson@specifixinc.com>
2766 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2768 2005-04-12 Caroline Tice <ctice@apple.com>
2770 Temporary fix for partitioning problems.
2771 * passes.c (rest_of_handle_final): Remove code that
2772 frees unlikely_text_section_name,
2773 * varasm.c (assemble_start_function): Test for partitioning
2774 flag before writing out section labels.
2775 (assemble_end_function): Test for partitioning flag before
2776 writing out section labels.
2778 2005-04-12 Steven Bosscher <stevenb@suse.de>
2779 Stuart Hastings <stuart@apple.com>
2780 Jan Hubicka <jh@suse.cz>
2782 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
2783 references to gt-tree-cfg.h.
2784 * basic-block.h (struct basic_block_def): Don't skip rbi
2785 for garbage collection.
2786 (struct reorder_block_def): Make GTY-able.
2787 (struct control_flow_graph): New structure.
2788 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2789 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2790 but instead defines to the control_flow_graph for cfun.
2791 (label_to_block_map): New define, points to the label map of
2792 the control_flow_graph for cfun.
2793 (n_edges_for_function, n_basic_blocks_for_function,
2794 last_basic_block_for_function, basic_block_info_for_function,
2795 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2796 basic_block_info_for_function, label_to_block_map_for_function):
2797 Counterparts for the above, taking a struct function as an extra
2799 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2800 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2801 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2802 (alloc_rbi_pool, free_rbi_pool): Remove.
2803 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2804 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2806 (cfg_layout_finalize) ... and don't free it here.
2807 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2809 * flow.c (free_basic_block_vars): Set label_to_block_map and
2810 n_edges to zero too.
2811 * function.h (struct function): Add cfg field.
2812 * function.c (allocate_struct_function): Allocate the cfg.
2813 * tree-cfg.c (label_to_block_map): Remove.
2814 (build_tree_cfg): Don't allocate the rbi pool here...
2815 (delete_tree_cfg_annotations): ...and don't free it here.
2816 Also don't nullify label_to_block_map for cfun.
2818 2005-04-12 Caroline Tice <ctice@apple.com>
2820 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2821 Revert my patch from April 9.
2822 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2823 (reorder_basic_blocks): Revert my patch from April 9.
2824 (insert_section_boundary_note): Revert my patch from April 9.
2825 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2826 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2827 (COLD_END_LABEL): Revert my patch from April 9.
2828 (cold_text_section_label): Revert my patch from April 9.
2829 (cold_end_label): Revert my patch from April 9.
2830 (dwarf2out_switch_text_section): Revert my patch from April 9.
2831 (output_aranges): Revert my patch from April 9.
2832 (output_ranges): Revert my patch from April 9.
2833 (output_line_info): Revert my patch from April 9.
2834 (add_location_or_const_value_attribute): Revert my patch from April 9.
2835 (dwarf2out_var_location): Revert my patch from April 9.
2836 (dwarf2out_init): Revert my patch from April 9.
2837 (dwarf2out_finish): Revert my patch from April 9.
2838 * function.h (struct function): Revert my patch from April 9.
2839 * opts.c (decode_options): Revert my patch from April 9.
2840 * output.h (unlikely_section_label, hot_section_label,
2841 hot_section_end_label, cold_section_end_label,
2842 unlikely_text_section_name): Revert my patch from April 9.
2843 * passes.c (rest_of_handle_final): Revert my patch from April 9.
2844 * varasm.c (unlikely_section_label, hot_section_label,
2845 hot_section_end_label, cold_section_end_label,
2846 unlikely_text_section_name): Revert my patch from April 9.
2847 (initialize_cold_section_name): Revert my patch from April 9.
2848 (unlikely_text_section): Revert my patch from April 9.
2849 (in_unlikely_text_section): Revert my patch from April 9.
2850 (named_section): Revert my patch from April 9.
2851 (function_section): Revert my patch from April 9.
2852 (current_function_section): Revert my patch from April 9.
2853 (assemble_start_function): Revert my patch from April 9.
2854 (assemble_end_function): Revert my patch from April 9.
2855 (default_section_type_flags_1): Revert my patch from April 9.
2857 2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2859 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2860 * config/sparc/sparc.md (untyped_call): Save the registers manually.
2862 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2864 2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
2867 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2868 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2870 2004-04-12 Richard Henderson <rth@redhat.com>
2872 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2873 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2874 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2875 (UNSPEC_*, UNSPECV_*): Renumber.
2877 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
2880 From Richard Henderson <rth@redhat.com>:
2881 * tree-mudflap.c (mf_build_check_statement_for): Correct block
2884 2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
2886 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2888 2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
2890 * config/bfin/bfin.c (bfin_library_id_string): Remove.
2891 (bfin_library_id): New variable.
2892 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2893 instead of bfin_library_id_string.
2894 (bfin_handle_option): New function.
2895 (override_options): Remove most code to deal with shared library IDs,
2896 just check they aren't used without -mid-shared-library.
2897 (TARGET_HANDLE_OPTION): Define.
2898 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2899 * config/bfin/bfin.opt (mshared-library-id=): New.
2901 2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
2903 * tree-vect-transform.c: Fix comment typos.
2905 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2907 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2908 split critical edges when not possible/profitable.
2910 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2912 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2913 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2914 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2915 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2916 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2917 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2918 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2919 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2921 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2922 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2923 * config/ns32k/ns32k.opt: New file.
2925 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2927 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2928 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2929 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2930 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2931 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2932 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2933 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2934 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2935 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2936 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2937 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2938 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2939 (MASK_COLDFIRE): Formatting fixes.
2940 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2941 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2942 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2943 "_current_shared_library_a5_offset_".
2944 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2945 (MASK_ALL_CPU_BITS): New macro.
2946 (m68k_handle_option): New function.
2947 (override_options): Remove handling of m68k_library_id_string.
2948 * config/m68k/m68k.opt: New file.
2949 * config/m68k/ieee.opt: New file.
2951 2005-04-11 Mark Mitchell <mark@codesourcery.com>
2953 * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2954 (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2955 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2956 (TARGET_CXX): Adjust accordingly.
2957 * target.h (struct gcc_target): Remove epxort_class_data. Add
2958 determine_class_data_visibility and class_data_always_comdat.
2959 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2960 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2961 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2962 * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2963 (arm_cxx_determine_class_data_visibility): New.
2964 (arm_cxx_class_data_always_comdat): Likewise.
2965 (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2966 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2967 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2968 * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2969 * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2972 2005-04-11 Devang Patel <dpatel@apple.com>
2974 * tree-data-ref.c (build_classic_dist_vector,
2975 compute_subscript_distance): Make externally visible.
2976 * tree-data-ref.h (build_classic_dist_vector,
2977 compute_subscript_distance): Same.
2978 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2979 Check distance vector against vectorization factor.
2980 (vect_analyze_loop): Determine vectorizaion factor before
2981 analyzing data dependences.
2982 * tree-vectorizer.c (loops_num): Make it externally visible and
2984 * tree-vectorizer.c (vect_loops_num): ... new name.
2985 * tree-vectorizer.h (vect_loops_num): New.
2987 2005-04-11 Devang Patel <dpatel@apple.com>
2989 * tree-vect-analyze.c (vect_analyze_operations): Check
2990 vectorizable codition.
2991 * tree-vect-transform.c (vect_is_simple_cond): New function.
2992 (vectorizable_condition): New function.
2993 (vect_transform_stmt): Handle condition_vec_info_type.
2994 * tree-vectorizer.h (enum stmt_vec_info_type): Add
2995 condition_vec_info_type.
2996 (vectorizable_condition): New.
2998 2005-04-11 Geoffrey Keating <geoffk@apple.com>
3000 * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
3001 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
3002 * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
3004 * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
3005 (SUBTARGET_EXTRA_SPECS): Always 'i386'.
3007 * dwarf2out.c (output_line_info): Don't try to dereference
3008 a NULL current_function_decl.
3010 * config/t-slibgcc-darwin: Don't put shared libraries in
3011 directories other than $(slibdir).
3012 * config/rs6000/darwin.h: Find -m64 libgcc under the name the
3015 2005-04-11 Diego Novillo <dnovillo@redhat.com>
3017 PR tree-optimization/20933
3018 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
3019 logic to reject aliases between read-only and writable
3021 (may_alias_p): ... here.
3022 (get_tmt_for): Do not associate read-only tags to pointers
3023 whose pointed-to type is not read-only.
3024 * tree-ssa.c (verify_ssa): Check that memory stores have at
3025 least one V_MAY_DEF or V_MUST_DEF.
3027 2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3030 * configure.ac (gcc_UNLOCKED_FUNCS): New.
3031 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
3032 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
3033 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
3035 (fwrite_unlocked): Fix prototype.
3037 * configure, config.in: Regenerate.
3039 2005-04-11 David Edelsohn <edelsohn@gnu.org>
3041 * tree-ssa-loop-im.c: Include real.h.
3042 (determine_invariantness_stmt): If real division divisor is
3043 invariant and flag_unsafe_math_optimizations enabled, generate
3044 invariant reciprocal for hoisting.
3045 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
3047 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
3049 Fix PR tree-optimization/20926
3051 * tree-ssa-alias.c (add_type_alias): Handle subvars.
3053 2005-04-11 Devang Patel <dpatel@apple.com>
3055 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
3058 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
3060 * fold-const.c (fold_binary_op_with_conditional_arg):
3061 use fold_buildN instead of "fold (buildN" in some
3063 (fold_unary): Likewise.
3064 (fold_binary): Likewise.
3066 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
3068 Fix PR tree-optimization/20612
3069 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
3071 (perfect_nestify): preheaderbb is *not* part of loop of the
3074 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
3076 * tree-ssa-alias.c (may_alias_p): If the variable
3077 is a global variable and the pointer is parameter
3078 and -fargument-noalias-global is used, then
3079 the pointer cannot alias the variable.
3081 2005-04-11 James A. Morrison <phython@gcc.gnu.org>
3083 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
3084 * config/sparc/sparc.h: Likewise.
3085 * config/sparc/sparc.md: Likewise.
3087 2005-04-11 Kazu Hirata <kazu@cs.umass.edu>
3089 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
3091 * tree-vrp.c: Fix a comment typo.
3093 2005-04-11 Diego Novillo <dnovillo@redhat.com>
3095 PR tree-optimization/20920
3096 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
3097 SSA_NAME flows through an abnormal edge.
3098 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
3099 through abnormal edges.
3100 (maybe_add_assert_expr): Likewise.
3102 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
3104 * config/s390/s390.h (s390_tune_string, s390_arch_string)
3105 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
3106 (s390_stack_size_string, s390_stack_guard_string, target_flags)
3107 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
3108 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
3109 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
3110 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
3111 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
3112 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
3113 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3114 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3115 (TARGET_HANDLE_OPTION): Likewise.
3116 (s390_tune): Initialize to PROCESSOR_max.
3117 (s390_arch_string): Make static.
3118 (s390_tune_string, s390_warn_framesize_string): Delete.
3119 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
3120 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
3121 (s390_handle_arch_option, s390_handle_option): New functions.
3122 (override_options): Remove parsing of option strings.
3123 * config/s390/s390.opt: New file.
3125 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
3127 * tree-complex.c (expand_vector_operations): Call
3128 update_stmt_if_modified.
3130 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
3132 * tree-vect-analyze (vect_determine_vectorization_factor):
3133 Do not use GET_MODE_NUNITS.
3134 * tree-vect-transform.c (vect_get_vec_def_for_operand,
3135 (vectorizable_load, vect_transform_loop): Likewise.
3137 2005-04-11 Uros Bizjak <uros@kss-loka.si>
3139 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
3140 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
3141 * optabs.h (enum optab_index): Add new OTI_lceil.
3142 (lceil_optab): Define corresponding macro.
3143 * optabs.c (init_optabs): Initialize lceil_optab.
3144 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
3145 and lceildi2 patterns.
3146 * builtins.c (expand_builtin_int_roundingfn): Handle
3147 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
3148 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
3149 BUILT_IN_LLCEIL{,F,L}.
3150 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
3151 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
3152 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
3153 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
3154 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
3155 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
3156 into lceil built-in function and (long long int)ceil{,f,l} into
3157 llceil built-in function.
3158 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
3161 2005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3163 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
3166 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
3168 * config/arm/arm.c: Fix a comment typo.
3169 * doc/tree-ssa.texi: Fix a typo.
3171 2005-04-10 Steven Bosscher <stevenb@suse.de>
3173 * cselib.c (clear_table): Rename to cselib_clear_table.
3174 * cselib.h (cselib_clear_table): Add prototype.
3175 * gcse.c (gcse_main): Make 'f' argument unused.
3176 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
3177 of each basic block instead.
3178 (compute_sets, compute_hash_table_work): Likewise.
3179 (constprop_register): Change int 'alter_jumps' argument to bool.
3180 (do_local_cprop): Likewise.
3181 (local_cprop_pass): Likewise. Also walk basic blocks instead of
3182 the insn chain. Explicitly clear the cselib tables after finishing
3183 one basic block. Make sure there are no unterminated libcall blocks.
3184 Update compute_sets call.
3185 (cprop): Walk basic blocks instead of the insn chain.
3186 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
3188 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
3189 one_cprop_pass calls.
3191 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
3193 * combine.c (combine_simplify_rtx): Remove a transformation that
3194 relies on an invalid assumption about rtl sign-extension semantics.
3196 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
3198 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
3199 to build_int_cst_wide.
3201 2005-04-09 Alexandre Oliva <aoliva@redhat.com>
3204 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
3205 set the original address pseudo to the correct value before the
3206 original insn, if possible, and leave the insn alone, otherwise
3207 create a new pseudo, set it and replace it in the insn.
3208 * recog.c (validate_change_maybe_volatile): New.
3209 * recog.h (validate_change_maybe_volatile): Declare.
3211 2005-04-09 Caroline Tice <ctice@apple.com>
3213 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3214 Remove targetm.have_named_sections test.
3215 (fix_edges_for_rarely_executed_code): Likewise.
3216 (insert_section_boundary_note): Likewise.
3217 (reorder_basic_blocks): Check partitioning flag before calling
3218 verify_hot_cold_block_grouping.
3219 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3220 the function struct rather than global variables.
3221 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3222 (COLD_END_LABEL): Likewise
3223 (cold_text_section_label): New static global variable.
3224 (cold_end_label): Likewise.
3225 (dwarf2out_switch_text_section): Get hot/cold section labels from
3226 the function struct rather than global variables.
3227 (output_aranges): Use cold_text_section_label and cold_end_label;
3228 check partitioning flag before putting out delta.
3229 (output_ranges): Remove incorrect code attempting to use
3231 (output_line_info): Get cold section label from function struct.
3232 (add_location_or_const_value_attribute): Likewise.
3233 (get_subprogram_die): Get hot/cold section labels from function struct.
3234 (dwarf2out_var_location): Likewise.
3235 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3236 write out cold_text_section_label if partition flag is set.
3237 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3238 * function.h (struct function): Add new fields to point to hot/cold
3239 section labels: hot_section_label, cold_section_label,
3240 hot_section_end_label and cold_section_end_label; also add new field
3241 for cold text section name, unlikely_text_section_name.
3242 * opts.c (decode_options): Turn off partitioning flag if
3243 !targetm.have_named_sections.
3244 * output.h (hot_section_label): Remove.
3245 (hot_section_end_label): Remove.
3246 (cold_section_end_label): Remove.
3247 (unlikely_section_label): Remove.
3248 (unlikely_text_section_name): Remove.
3249 * passes.c (rest_of_handle_final): Remove code that frees
3250 unlikely_text_section_name.
3251 * varasm.c (unlikely_section_label): Remove.
3252 (hot_section_label): Remove.
3253 (hot_section_end_label): Remove.
3254 (cold_section_end_label): Remove.
3255 (unlikely_text_section_name): Remove.
3256 (initialize_cold_section_name): Modify to call
3257 targetm.strip_name_encoding; to store cold section name in current
3258 function struct, if it exists; and to only use the decl_section_name
3259 if flag_named_sections is true.
3260 (unlikely_text_section): Modify to get section name out of current
3261 function struct, if there is one; otherwise build it from
3262 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3263 (in_unlikely_text_section): Likewise.
3264 (named_section): Modify to get/put cold section name in current function
3265 struct, if there is one.
3266 (function_section): Change 'bool unlikely' to 'int reloc'; check
3267 targetm.have_named_sections before calling named_section.
3268 (current_function_section): Likewise.
3269 (assemble_start_function): Modify to get/put unlikely_text_section_name
3270 in current function struct; modify to get hot/cold section labels
3271 from function struct; initialize labels using
3272 ASM_GENERATE_INTERNAL_LABEL;
3273 test partitioning flag before writing out hot section label.
3274 (assemble_end_function): Test partitioning flag before writing out
3275 hot/cold section labels.
3276 (default_section_type_flags_1): Modify to use array instead of
3277 char* for unlikely_text_section_name; set flags correctly for
3278 cold text section if there is not a current function decl.
3280 2005-04-09 Jakub Jelinek <jakub@redhat.com>
3282 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3283 and TI_VA_LIST_FPR_COUNTER_FIELD.
3284 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3285 * tree-pass.h (pass_stdarg): Add.
3286 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3287 * tree-stdarg.c: New file.
3288 * tree-stdarg.h: New file.
3289 * Makefile.in (OBJS-common): Add tree-stdarg.o.
3290 (tree-stdarg.o): Add dependencies.
3291 * function.h (struct function): Add va_list_gpr_size and
3292 va_list_fpr_size fields.
3293 * function.c (allocate_struct_function): Initialize them.
3294 * target.h (struct gcc_target): Add stdarg_optimize_hook.
3295 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3296 (TARGET_INITIALIZER): Add it.
3298 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3299 va_list_{g,f}pr_counter_field.
3300 (ix86_setup_incoming_varargs): Don't do anything if reg_save
3301 area will not be used. Only save registers that tree-stdarg.c
3302 detected they need saving.
3303 (ix86_va_start): Don't set up fields that won't be used.
3305 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3306 va_list_{g,f}pr_counter_field.
3307 (setup_incoming_varargs): Don't do anything if reg_save
3308 area will not be used. Only save registers that tree-stdarg.c
3309 detected they need saving.
3310 (rs6000_va_start): Don't set up fields that won't be used.
3312 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
3313 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
3314 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
3315 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3317 2005-04-09 Jakub Jelinek <jakub@redhat.com>
3320 * config/i386/i386.c (construct_container): Pass empty aligned
3321 struct, union or class in memory.
3323 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
3325 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
3326 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
3327 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
3328 config/rs6000/predicates.md: Fix comment typos.
3330 * sched-int.h (haifa_insn_data): Remove blockage and units.
3331 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
3332 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
3333 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
3335 2005-04-09 Jan Hubicka <jh@suse.cz>
3336 Steven Bosscher <stevenb@suse.de>
3338 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
3339 * cfgloop.c (get_loop_exit_edges): Likewise.
3340 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
3342 * loop-unroll.c (analyze_insns_in_loop): Likewise.
3343 * tree-cfg.c (dump_cfg_status): Likewise.
3345 2005-04-09 David Edelsohn <edelsohn@gnu.org>
3347 * config/rs6000/predicates.md (altivec_register_operand): Remove
3348 redundant match_code test.
3349 (gpc_reg_operand): Same.
3350 (cc_reg_operand): Same.
3351 (cc_reg_not_cr0_operand): Same.
3353 2005-04-09 Jan Hubicka <jh@suse.cz>
3355 Forgotten hunk from my last merge patch:
3356 * final.c (output_addr_const): Do not call mark_referenced.
3358 2005-04-09 Andrew MacLeod <amacleod@redhat.com>
3360 * doc/tree-ssa.texi: Add immediate use documentation.
3362 2005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
3364 * arm.c (FL_WBUF): Define.
3365 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
3366 (arm_is_6_or_7): Delete.
3367 (arm_tune_wbuf): New.
3368 (arm_override_options): Set arm_tune_wbuf.
3369 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
3370 (arm_is_6_or_7): Delete declaration.
3371 (arm_tune_wbuf): New declartion.
3372 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
3373 (model_wbuf): Derive from arm_tune_wbuf.
3374 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
3375 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
3376 (arm740t): Mark CPUs as having a write buffer.
3378 2005-04-09 Uros Bizjak <uros@kss-loka.si>
3380 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
3381 of 'const_double_operand' in operand 2 constraints. Update enable
3384 2005-04-09 Uros Bizjak <uros@kss-loka.si>