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