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