1 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
4 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
5 assertion failures, if __gcc_host_wide_int__ is not properly
7 (init_dynamic_diag_info): Give errors, not assertion failures, if
8 location_t, tree or __gcc_host_wide_int__ are not properly
11 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
13 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
14 n_iv_uses, iv_use, n_iv_cands, iv_cand,
15 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
16 prepare_decl_rtl, free_loop_data,
17 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
20 * tree.h (tree_phi_node): Add a comment about the order of PHI
23 2005-04-26 Paul Brook <paul@codesourcery.com>
25 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
27 2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
29 * config/mips.mips.c (mips_legitimize_tls_address): Use
32 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
33 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
34 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
36 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
39 2005-04-26 Jeff Law <law@redhat.com>
41 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
42 (op_iter_init_must_and_may_def): Likewise.
43 (unmodifiable_var_p): Move to a later point in the file.
44 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
45 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
46 (dse_record_phis): Directly check for virtual operands rather than
47 using need_imm_uses_for.
48 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
49 store has multiple V_{MAY,MUST}_DEF operands.
51 2005-04-26 Andrew MacLeod <amacleod@redhat.com>
53 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
56 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
58 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
59 call to find_edge outside a loop to go through a PHI chain.
61 2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
63 PR tree-optimization/17598
64 * fold-const.c (fold_binary): Fold comparisons of addresses
65 of COMPONENT_REFs which reference the same field to
66 comparisons of the addresses of the base objects.
68 2005-04-26 Julian Brown <julian@codesourcery.com>
70 * config/arm/arm.c (arm_return_in_msb): New function.
71 (arm_must_pass_in_stack): New function.
72 (TARGET_RETURN_IN_MSB): Define target hook.
73 (TARGET_MUST_PASS_IN_STACK): Define target hook.
74 (arm_function_value): Pad small aggregate return.
75 (arm_pad_arg_upward): New function.
76 (arm_pad_reg_upward): New function.
77 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
78 (FUNCTION_ARG_PADDING): Define macro.
79 (BLOCK_REG_PADDING): Define macro.
80 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
81 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
82 (arm_pad_reg_upward): Declare function.
84 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
86 * basic-block.h (ei_cond): New.
87 (FOR_EACH_EDGE): Call ei_cond.
89 PR tree-optimization/21047
90 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
91 (fold): Don't handle ASSERT_EXPR.
93 2005-04-25 Roger Sayle <roger@eyesopen.com>
95 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
96 all writes to any stack register as a read/write dependency on
98 (sched_analyze_2): Likewise, for reads from any stack register.
100 2005-04-25 Richard Henderson <rth@redhat.com>
102 * final.c (output_addr_const): Revert 2005-04-09 change.
104 2005-04-25 Mike Stump <mrs@apple.com>
106 * config/darwin.c (darwin_encode_section_info): Always set
107 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
109 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
111 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
112 gensupport.c, protoize.c, toplev.c: Replace calls to
113 `unlock_stream' with `unlock_std_streams'.
115 2005-04-25 Devang Patel <dpatel@apple.com>
117 * dbxout.c (dbxout_type): Emit attribute vector.
119 2005-04-05 Paul Brook <julian@codesourcery.com>
121 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
122 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
123 * config/arm/arm.c (arm_cxx_atexit_name): New function.
124 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
125 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
126 (register_dtor_fn): Likewise.
127 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
129 2005-04-25 Ian Lance Taylor <ian@airs.com>
131 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
132 * c-common.h (EXPR_STMT_EXPR): Don't define.
133 (c_common_stmt_codes): Don't define.
134 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
135 * c-gimplify.c (gimplify_expr_stmt): Remove.
136 (c_gimplify_expr): Remove EXPR_STMT case.
137 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
138 to INIT_STATEMENT_CODES.
139 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
141 2005-04-25 Jan Hubicka <jh@suse.cz>
143 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
145 * except.c: Include diagnostic.h
146 (dump_eh_tree, verify_eh_tree): New functions.
147 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
148 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
149 (dump_function_to_file): dump eh tree.
150 * tree-eh.c (mark_eh_edge): New function.
151 (mark_eh_edge_found_error): New static variable.
152 (verify_eh_edges): New function.
154 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
156 * tree-ssa-alias.c (fieldoff_t): Remove.
157 (fieldoff_s): typedef the structure itself. Create a vector of
159 (push_fields_onto_fieldstack): Return count of fields pushed.
160 Remove peeling of first field. Adjust.
161 (fieldoff_compare): Adjust.
162 (create_overlap_variables_for): Adjust.
164 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
166 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
168 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
171 * doc/install.texi: Document correct assembler and linker to use
172 on i?86-*-solaris2.10.
174 2005-04-25 Steven Bosscher <stevenb@suse.de>
176 Fix PR tree-optimization/21173
178 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
179 Unshare expression we pass to force_gimple_operand.
181 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
182 Stephen Clarke <stevec@superh.com>
183 Roger Sayle <roger@eyesopen.com>
185 PR rtl-optimization/20413
186 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
187 VOIDmode for LABEL_REF.
188 * final.c (shorten_branches): Likewise.
189 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
190 * loop.c (reg_dead_after_loop): Likewise.
191 * varasm.c (decode_addr_const): Likewise.
192 * doc/rtl.texi: Document mode requirement for LABEL_REF.
194 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
196 * config.gcc (avr-*-*): Remove redundant "case".
198 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
200 * tree-vect-analyze.c (vect_mark_relevant): Take
201 VEC(tree,heap) instead of varray_type as an argument.
202 (vect_mark_stmts_to_be_vectorized): Change the type of
203 worklist to VEC(tree,heap). Adjust uses of worklist.
205 2005-04-24 Devang Patel <dpatel@apple.com>
207 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
209 2005-04-24 Ian Lance Taylor <ian@airs.com>
211 * c-semantics.c (build_stmt): Remove test of specific tree codes
212 for TREE_SIDE_EFFECTS handling.
214 2005-04-24 Per Bothner <per@bothner.com>
216 * c-opts.c (finish_options): Make the line-number of the <built-in>
217 location 0, as assumed elsewhere, rather than 1.
219 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
221 * tree-ssa-uncprop.c (equiv_stack): Change the type o
223 (tree_ssa_uncprop, uncprop_finalize_block,
224 uncprop_initialize_block): Update uses of equiv_stack.
226 2005-04-24 Richard Henderson <rth@redhat.com>
229 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
230 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
232 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
233 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
234 <DIV, MOD>: Likewise.
236 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
238 * collect2.c (main): Unlock the stdio streams.
239 * gcc.c (main): Likewise.
240 * gcov-dump.c (main): Likewise.
241 * gcov.c (main): Likewise.
242 * gen-protos.c (main): Likewise.
243 * gensupport.c (init_md_reader_args_cb): Likewise.
244 * protoize.c (main): Likewise.
245 * toplev.c (general_init): Likewise.
247 2005-04-24 Jakub Jelinek <jakub@redhat.com>
250 * cgraph.h (cgraph_local_info): Add vtable_method field.
251 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
252 and node is vtable_method, finalized and not reachable, don't do
255 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
257 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
259 * tree-ssa-pre.c (create_value_expr_from): Use
260 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
261 * tree-ssa-propagate.c (stmt_makes_single_load,
262 stmt_makes_single_store): Use REFERENCE_CLASS_P.
263 * tree-vect-transform.c (vect_is_simple_cond): Use
265 * tree-vrp.c (extract_range_from_assert,
266 build_assert_expr_for, fp_predicate, has_assert_expr): Use
269 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
270 of tpa_to_clear to VEC(int,heap). Update uses of
271 tpa_to_clear. Free tpa_to_clear at the end.
273 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
275 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
278 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
280 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
281 and gcc_unreachable as appropriate.
282 (num_insns_constant, output_vec_const_move,
283 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
284 rs6000_emit_set_const, rs6000_emit_move,
285 spe_build_register_parallel, function_arg,
286 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
287 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
288 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
289 rs6000_common_init_builtins, expand_block_clear,
290 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
291 extract_ME, rs6000_get_some_local_dynamic_name,
292 rs6000_output_function_entry, print_operand,
293 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
294 output_cbranch, output_e500_flip_gt_bit,
295 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
296 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
297 compute_save_world_info, rs6000_stack_info,
298 rs6000_emit_load_toc_table, rs6000_frame_related,
299 spe_synthesize_frame_save, rs6000_emit_epilogue,
300 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
301 output_function_profiler, rs6000_trampoline_size,
302 rs6000_initialize_trampoline, find_addr_reg,
303 rs6000_machopic_legitimize_pic_address,
304 rs6000_initial_elimination_offset,
305 rs6000_dbx_register_number): Likewise.
306 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
307 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
308 *movti_power, *movti_string, call, call_value, sibcall,
309 sibcall_value): Likewise.
310 * config/rs6000/spe.md (*movdf_e500_double,
311 *movv2si_internal): Likewise.
312 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
315 2005-04-24 Richard Henderson <rth@redhat.com>
318 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
319 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
320 Deny modes smaller than 4 bytes.
321 * config/i386/i386-protos.h: Update.
323 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
325 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
326 Switch h8300-*-rtems* to ELF.
328 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
330 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
332 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
334 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
336 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
339 * fold-const.c: Fold &a[i]-&a[j] to i-j.
341 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
343 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
344 definitions of ssa names in condition. Split recusive part to ...
345 (tree_simplify_using_condition_1): New function.
346 (expand_simple_operations): New function.
348 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
350 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
351 (find_interesting_uses_cond): Do not use integer_zerop and
352 integer_nonzerop to check for integer constants.
353 (set_use_iv_cost): Record the value field.
354 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
355 determine_use_iv_cost_outer): Set the value field of the cost pair.
356 (may_eliminate_iv): Do not return the comparison code.
357 (iv_elimination_compare): New function.
358 (determine_use_iv_cost_condition): Set the value field. Record
359 noneliminable invariants correctly.
360 (rewrite_use_compare, rewrite_use_outer): Use the value field.
362 2005-04-23 DJ Delorie <dj@redhat.com>
364 * diagnostic.c (warning): Accept parameter to classify warning option.
365 (warning0): New, for when a pointer to an error() like function is needed.
366 * errors.c (warning): Likewise.
367 * errors.h (warning, warning0): Adjust prototypes.
368 * toplev.h (warning, warning0): Likewise.
370 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
371 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
372 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
373 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
374 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
375 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
376 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
377 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
379 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
380 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
381 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
382 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
383 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
384 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
385 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
386 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
387 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
388 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
389 config/rs6000/aix52.h, config/rs6000/darwin.h,
390 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
391 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
392 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
393 config/stormy16/stormy16.c, config/v850/v850-c.c,
394 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
397 2005-04-23 Richard Henderson <rth@redhat.com>
400 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
401 performing some integral scalar simplifications.
403 2005-04-23 Richard Henderson <rth@redhat.com>
406 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
407 simplifying CONST_VECTOR.
409 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
411 * tree-ssa-live.c (live_worklist): Take a stack allocated on
412 heap as an argument. Update uses of stack.
413 (calculate_live_on_entry): Allocate stack on heap.
415 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
416 partition_link and tpa_nodes on heap.
418 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
419 (mark_stmt_necessary, propagate_necessity,
420 mark_really_necessary_kill_operand_phis): Update uses of
422 (tree_dce_init): Allocate worklist using VEC_alloc.
423 (tree_dce_done): Free worklist using VEC_free.
425 2005-04-23 Mike Stump <mrs@apple.com>
427 * config/darwin.c (machopic_indirection_name): Don't use
429 (darwin_emit_unwind_label): Use user_label_prefix instead of
432 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
434 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
436 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
438 * config.gcc <cris-*>: Specify .opt files.
439 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
440 config/cris/linux.opt: New files.
441 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
442 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
443 (TARGET_ELF): Override to 0.
444 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
445 -melinux-stacksize=N.
446 * config/cris/cris.c: (cris_handle_option): New function.
447 (TARGET_DEFAULT_TARGET_FLAGS): Override.
448 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
449 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
450 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
451 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
452 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
453 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
454 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
455 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
456 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
457 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
458 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
459 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
460 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
461 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
462 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
463 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
464 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
465 (TARGET_LINUX): Define 0.
466 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
467 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
468 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
469 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
470 (TARGET_LINUX): Override to 1.
471 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
473 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
475 * haifa-sched.c (schedule_block): Fix thinko in previous
476 assertification patch.
478 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
480 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
481 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
482 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
483 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
484 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
485 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
486 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
488 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
489 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
490 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
491 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
492 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
493 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
494 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
495 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
496 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
497 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
498 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
499 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
500 (SUBTARGET_OPTIONS): Delete.
501 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
502 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
504 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
505 (pa_cpu_string, pa_unix_string): Delete.
506 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
507 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
509 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
510 (pa_handle_option): New function.
511 (override_options): Remove handling of -march=, -mfixed-range=,
512 -mschedule= and -munix=.
513 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
514 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
515 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
516 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
517 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
518 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
519 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
521 * config/pa/pa.opt: New file.
522 * config/pa/pa-hpux.opt: New file.
523 * config/pa/pa-hpux1010.opt: New file.
524 * config/pa/pa-hpux1111.opt: New file.
525 * config/pa/pa64-hpux.opt: New file.
527 2005-04-22 David S. Miller <davem@davemloft.net>
529 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
530 integer when it's mode is VOIDmode not DImode.
532 2005-04-22 Geoffrey Keating <geoffk@apple.com>
534 * config/rs6000/rs6000.md (sync_add<mode>_internal,
535 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
536 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
537 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
538 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
539 "bne- $-xxx" rather than local labels.
540 (sync_lock_release<mode>): Add second operand.
541 (lwsync): Use .long rather than a more meaningful opcode.
542 * doc/md.texi (Standard Names): Add description of second
543 parameter to sync_lock_test_and_set.
545 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
547 PR tree-optimization/21088
548 * fold-const.c (fold_unary, fold_binary, fold_ternary):
550 * tree-vrp.c (compare_values): Use fold_binary to compare
551 pointers. Use boolean_type_node as the type of a comparison
552 expression being folded.
553 * tree.h: Add prototypes for fold_unary, fold_binary,
556 * tree-ssa-dom.c: Fix formatting.
558 2005-04-22 Diego Novillo <dnovillo@redhat.com>
560 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
561 * lambda-code.c (perfect_nestify): Mark virtual operands in
562 the moved statement for renaming.
563 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
564 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
565 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
566 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
567 * tree-flow.h (struct var_ann_d): Update comments.
568 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
569 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
570 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
571 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
572 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
573 debug_names_replaced_by): Remove declarations.
574 (delete_update_ssa, get_current_def, set_current_def): Declare.
575 (rewrite_into_loop_closed_ssa): Add new argument. Update
577 * tree-into-ssa.c: Include params.h.
578 (old_virtual_ssa_names): Remove. Update all users.
579 (need_to_replace_names_p): Remove. Update all users.
580 (struct update_ssa_stats_d): Declare.
581 (update_ssa_stats): New local.
582 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
583 dump_tree_ssa_stats, debug_tree_ssa_stats,
584 dump_update_ssa, debug_update_ssa,
585 dump_names_replaced_by, debug_names_replaced_by): Declare.
586 (get_current_def, set current_def): Make extern.
587 (is_old_name, is_new_name): Protect against references
588 past the end of the sets.
589 (add_new_name_mapping): Assert that OLD and NEW are
590 different SSA names for the same symbol.
591 When adding a virtual mapping, update stats for virtual
593 (insert_phi_nodes_for): If UPDATE_P is true, create the
594 LHS of the new PHI by duplicating SSA name VAR.
595 (insert_phi_nodes_1): Remove. Update all users.
596 (insert_phi_nodes): Remove second argument. Update all
598 (maybe_replace_use, maybe_replace_def): New.
599 (rewrite_update_stmt): Call them.
600 (mark_def_interesting): Remove calls to is_gimple_reg.
601 (prepare_phi_args_for_update): Remove. Update all users.
602 (prepare_block_for_update): Only process virtual operands
603 and GIMPLE registers in normal form.
604 (prepare_use_sites_for): New.
605 (prepare_names_to_update): Rename from prepare_def_sites.
606 Call prepare_use_sites_for.
607 (dump_update_ssa): Rename from dump_repl_tbl.
609 Show statistics for virtual mapping heuristic.
610 (debug_update_ssa): Rename from debug_debug_repl_tbl.
611 (init_update_ssa): Initialize UPDATE_SSA_STATS.
612 (delete_update_ssa): Make extern.
613 (mark_set_for_renaming): If the set is empty, do nothing.
614 (release_ssa_name_after_update_ssa): Update comment.
615 (insert_updated_phi_nodes_for): Do not remove existing
616 PHI nodes for symbols.
617 (switch_virtuals_to_full_rewrite_p): New.
618 (switch_virtuals_to_full_rewrite): New.
619 (update_ssa): Call them.
620 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
621 for every statement before updating.
622 If all the names in NEW_SSA_NAMES have been marked for
624 Only start at the top of the CFG if there are symbols in
626 (ssa_rewrite_finalize_block): Remove.
627 (ssa_register_new_def): Remove.
628 (ssa_rewrite_stmt): Remove.
629 (ssa_rewrite_phi_arguments): Remove.
630 (ssa_rewrite_initialize_block): Remove.
631 (ssa_mark_def_sites): Remove.
632 (ssa_mark_def_sites_initialize_block): Remove.
633 (ssa_mark_phi_uses): Remove.
634 (rewrite_ssa_into_ssa): Remove.
635 * tree-phinodes.c (find_phi_node_for): Remove.
636 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
638 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
639 Remove calls to verify_dominators and
640 verify_loop_structure.
641 (tree_unswitch_single_loop): Call update_ssa.
642 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
645 (delete_tree_ssa): Assert that need_ssa_update_p returns
647 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
648 * tree-vectorizer.c (allocate_new_names, rename_def_op,
649 free_new_names): Remove. Update all users.
650 (rename_use_op): Call get_current_def.
651 (rename_variables_in_bb): Do not handle any real or
653 (slpeel_update_phis_for_duplicate_loop): Call
654 get_current_def and set_current_def instead of using
656 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
657 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
658 ssa_names_to_replace and delete_update_ssa.
659 * doc/invoke.texi: Document --param min-virtual-mappings
660 and --param virtual-mappings-ratio.
662 2005-04-22 Diego Novillo <dnovillo@redhat.com>
664 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
665 for newly created PHI nodes.
666 Call create_new_def_for for every new V_MAY_DEF and
667 V_MUST_DEF on the copied statement.
668 (struct ssa_name_map_entry): Remove.
669 (ssa_name_map_entry_hash): Remove.
670 (ssa_name_map_entry_eq): Remove.
671 (allocate_ssa_names): Remove.
672 (rewrite_to_new_ssa_names_def): Remove.
673 (rewrite_to_new_ssa_names_use): Remove.
674 (rewrite_to_new_ssa_names_bb): Remove.
675 (rewrite_to_new_ssa_names): Remove.
676 (tree_duplicate_sese_region): Remove variables ver,
677 definitions, phi, ssa_name_map and bi.
678 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
680 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
681 update_ssa instead of rewrite_ssa_into_ssa.
682 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
684 (find_uses_to_rename_use): Add argument 'need_phis'.
685 (find_uses_to_rename_stmt): Do not scan virtual operands.
686 (find_uses_to_rename): Only scan PHI nodes for
688 (rewrite_into_loop_closed_ssa): Call update_ssa.
689 (check_loop_closed_ssa_use): Ignore virtual operands.
690 (check_loop_closed_ssa_stmt): Likewise.
691 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
693 (rename_variables, set_phi_def_stmts): Remove.
694 (tree_duplicate_loop_to_header_edge): Reformat comment.
695 Remove variables BB, I and DEFINITIONS.
696 Call need_ssa_update_p.
698 (lv_adjust_loop_header_phi): Reformat comment.
699 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
700 (marked_for_rewrite_p, any_marked_for_rewrite_p,
701 mark_for_rewrite, unmark_all_for_rewrite,
702 marked_ssa_names): Remove. Update all users.
703 (release_ssa_name): If VAR has been registered for SSA
704 updating, do nothing.
705 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
706 (build_assert_expr_for): Call register_new_name_mapping.
707 (insert_range_assertions): Update call to update_ssa.
708 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
709 marked_for_rewrite_p, any_marked_for_rewrite_p,
710 marked_ssa_names): Remove.
712 2005-04-22 Jeff Law <law@redhat.com>
714 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
715 (restore_currdefs_to_original_value): Likewise.
716 (register_definitions_for_stmt): Likewise.
717 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
718 for each variable. Do not allocate/free block_defs_stack either.
719 Do not iterate if we just thread jumps. Only iterate if the
720 tree_cleanup_cfg does useful work (temporary).
721 (dom_opt_initialize_block): No longer push a marker on
723 (dom_opt_finalize_block): Removal call to restore currdefs.
724 Relax restrictions for recording edge equivalences.
725 (record_equivalences_from_phis): No longer need to track
727 (optimize_stmt): Similarly.
728 (thread_across_edge): Simplify by removing the requirement that
729 statements in the block we are threading through must be nops.
730 (initialize_hash_element): Handle GOTO_EXPR.
732 2005-04-22 David S. Miller <davem@davemloft.net>
734 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
736 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
737 fix check on CONST_DOUBLE mode. It should be VOIDmode
738 when it is representing an integer.
740 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
742 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
743 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
744 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
745 find_char_info_specifier_index,
746 find_length_info_modifier_index): Likewise.
747 * c-typeck.c (composite_type, pop_init_level): Likewise.
748 * combine.c (cant_combine_insn_p, try_combine): Likewise.
749 * cse.c (cse_insn): Likewise
750 * dominance.c (calc_dfs_tree): Likewise
751 dwarf2out.c (loc_descriptor_from_tree_1,
752 add_abstract_origin_attribute, force_decl_die,
753 force_type_die): Likewise
754 emit-rtl.c (operand_subword_force): Likewise
755 explow.c (hard_function_value): Likewise
756 expmed.c (store_bit_field, expand_divmod,
757 emit_store_flag_force): Likewise
758 expr.c (emit_move_multi_word, store_expr,
759 expand_expr_real_1): Likewise
760 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
761 output_operand): Likewise
762 flow.c (recompute_reg_usage): Likewise
763 * function.c (assign_stack_temp_for_type, assign_temp,
764 handle_epilogue_set): Likewise
765 * genextract.c (main): Likewise
766 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
767 gimplify_modify_expr_rhs, gimplify_expr): Likewise
768 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
769 ready_remove, rm_line_notes, rm_other_notes,
770 schedule_block): Likewise
771 mips-tfile.c (copy_object, out_of_bounds): Likewise
773 2005-04-22 David Edelsohn <edelsohn@gnu.org>
776 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
777 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
778 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
779 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
781 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
783 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
785 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
786 (gcc_tree_to_linear_expression): Convert to heap allocated
788 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
789 lbv_to_gcc_expression, lle_to_gcc_expression,
790 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
791 perfect_nestify): Likewise.
792 lambda.h (gcc_loopnest_to_lambda_loopnest,
793 lambda_loopnest_to_gcc_loopnest): Likewise.
794 tree-loop-linear.c (linear_transform_loops): Likewise.
796 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
798 * config/sparc/predicates.md (arith_double_operand): Use
799 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
800 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
801 (DImode, DFmode constant splitters): Likewise. Remove code for
802 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
803 (logical constant splitters): Use const_int_operand predicate.
804 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
805 HOST_BITS_PER_WIDE_INT < 64.
807 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
809 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
810 gcc_unreachable as appropriate.
811 (force_mode, emit_move_sequence, singlemove_string,
812 output_move_double, output_fp_move_double, find_addr_reg,
813 output_block_move, output_block_clear, output_and,
814 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
815 pa_adjust_cost, pa_issue_rate, print_operand,
816 output_global_address, output_arg_descriptor, output_cbranch,
817 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
818 output_call): Likewise.
819 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
820 prefetch, prefetch_cc, prefetch_nocc): Likewise.
822 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
824 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
825 _gcov_pow2_profiler and _gcov_one_value_profiler.
826 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
827 (GTFILES): Add $(srcdir)/tree-profile.c.
828 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
829 __gcov_one_value_profiler): Declare.
830 * gimplify.c (force_gimple_operand): Check whether the statements
831 should be produced in ssa form.
832 (force_gimple_operand_bsi): New function.
833 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
834 __gcov_one_value_profiler): New functions.
835 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
836 the profiled value is a power of two or not.
837 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
838 * tree-flow.h (in_ssa_p): Declare.
839 (force_gimple_operand_bsi): Declare.
840 * tree-into-ssa.c (in_ssa_p): New variable.
841 (rewrite_into_ssa): Set in_ssa_p.
842 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
843 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
844 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
845 tree_one_value_profiler_fn): New variables.
846 (tree_init_edge_profiler): Initialize the profiler function decls.
847 (tree_gen_edge_profiler): Use global gcov_type_node.
848 (prepare_instrumented_value): New function.
849 (tree_gen_interval_profiler, tree_gen_interval_profiler,
850 tree_gen_one_value_profiler): Call the library functions instead of
851 creating instrumentation code.
852 * tree.c (build_fn_decl): New function.
853 * tree.h (build_fn_decl): Declare.
854 * value-prof.c (rtl_divmod_values_to_profile,
855 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
856 tree_mod_pow2_value_transform, tree_find_values_to_profile):
857 Do not handle may_be_other and precise values of exponents at pow2
859 (tree_mod_subtract_transform): Reflect that value field of
860 histogram has changed meaning.
861 (tree_divmod_values_to_profile): Record the values correctly.
862 (tree_values_to_profile): Update comment.
863 * value-prof.h (struct histogram_value_t): Remove pow2 data.
865 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
867 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
870 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
872 * config/i386/i386.md (length_immediate): Use gcc_assert or
873 gcc_unreachable, as appropriate.
874 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
875 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
876 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
877 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
878 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
879 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
880 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
881 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
882 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
883 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
884 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
885 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
886 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
887 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
888 *prefetch_sse_rex): Likewise.
889 * config/i386/predicates.md (x86_64_immediate_operand,
890 x86_64_zext_immediate_operand, symbolic_operand,
891 no_seg_address_operand, aligned_operand,
892 memory_displacement_operand): Likewise.
893 * config/i386/sse.md (*mov<mode>_internal,
894 *movv2df_internal): Likewise.
896 2005-04-22 Jan Hubicka <jh@suse.cz>
898 * Makefile.in (ipa.o, ipa-inline.o): New files.
899 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
900 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
901 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
902 * cgraphunit.c (cgraph_default_inline_p,
903 cgraph_decide_inlining_incrementally, ncalls_inlined,
904 nfunctions_inlined, initial_insns, overall_insns,
905 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
906 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
907 cgraph_mark_inline, cgraph_check_inline_limits,
908 cgraph_default_inline_p, cgraph_recursive_inlining_p,
909 update_callee_keys, lookup_recursive_calls,
910 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
911 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
912 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
913 pass_ipa_inline): Move to ipa-inline.c
914 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
916 * ipa-inline.c: New file.
918 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
920 * doc/invoke.texi (SPARC options): Document that -mapp-regs
921 is turned off by default on Solaris.
923 2005-04-21 Roger Sayle <roger@eyesopen.com>
925 * c-common.h (objc_build_method_signature): Update prototype.
926 * stub-objc.c (objc_build_method_signature): Update the stub
927 implementation to accept and ignore additional parameter.
928 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
929 the value of ellipsis to objc_build_method_signature instead
930 of setting TREE_OVERFLOW on the parms TREE_LIST node.
932 2005-04-21 Geoffrey Keating <geoffk@apple.com>
934 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
935 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
936 gen_rtx_* not gen_rtx_fmt_*.
937 (rs6000_emit_vector_select): Likewise.
938 (rs6000_emit_sync): New.
939 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
940 (larx, stcx, cmp): New mode substitutions.
941 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
942 UNSPEC_ISYNC): New constants.
944 (memory_barrier, isync, lwsync): New insns.
945 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
946 (sync_lock_release<mode>): New expander.
947 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
948 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
949 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
950 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
951 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
952 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
953 (sync_add<mode>_internal, sync_addshort_internal,
954 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
955 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
956 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
958 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
959 is the memory before, not after, the operation. Clarify
960 barrier requirements.
962 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
964 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
965 * lambda.h (lambda_vector_min_nz): Likewise.
966 * langhooks.h (struct lang_hooks_for_types,
967 struct lang_hooks): Likewise.
968 * output.h (assemble_integer, this_is_asm_operands): Likewise.
971 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
973 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
974 comments to avoid 'abort'. Use gcc_assert as necessary.
975 * opts.c (common_handle_option): Likewise.
976 * pretty-print.c (pp_base_format_text): Likewise.
977 * print-rtl.c (print_rtx): Likewise.
978 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
979 * regmove.c (try_auto_increment): Likewise.
980 * reload.c (find_valid_class, find_reloads_toplev,
981 find_equiv_reg): Likewise.
982 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
983 merge_assigned_reloads): Likewise.
984 * tree-inline.c (inline_forbidden_p_1,
985 estimate_num_insns_1): Likewise.
986 * tree-optimize.c (execute_todo): Likewise.
987 * tree-outof-ssa.c (eliminate_phi): Likewise.
988 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
989 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
990 * tree-ssa-operands.c (parse_ssa_operands,
991 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
992 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
993 * tree-ssanames.c (release_ssa_name): Likewise.
994 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
995 walk_tree): Likewise.
997 * tree-ssa-operands.c (verify_abort): Fold into ..
998 (verify_imm_links): ... here.
1000 2005-04-21 Richard Henderson <rth@redhat.com>
1002 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1003 on non-memory operand for previous inversion.
1005 2005-04-21 Devang Patel <dpatel@apple.com>
1007 PR optimization/20994
1008 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1009 x = !(a == b) : p , q;.
1010 (pass_if_conversion): Verify stmts and flow.
1012 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1014 * optabs.c (gen_conditional_trap): Restore #define.
1016 * alias.c (true_dependence): Remove 'abort' from comments. Use
1017 gcc_assert and gcc_unreachable as appropriate.
1018 (canon_true_dependence): Likewise.
1019 * bb-reorder.c (connect_traces): Likewise.
1020 * c-common.c (c_add_case_label): Likewise.
1021 * c-decl.c (finish_function): Likewise.
1022 * caller-save.c (insert_restore, insert_save): Likewise.
1023 * cfg.c (update_bb_profile_for_threading): Likewise.
1024 * cfganal.c (flow_active_insn_p): Likewise.
1025 * cfgexpand.c (add_reg_br_prob_note): Likewise.
1026 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1027 cfg_layout_merge_blocks): Likewise.
1028 * ifcvt.c (cond_exec_process_insns, merge_if_block,
1029 find_if_block): Likewise.
1030 * integrate.c (allocate_initial_values): Likewise.
1031 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1032 swap_condition, unsigned_condition, signed_condition,
1033 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1034 reg_or_subregno): Likewise.
1035 * lambda-code.c (lambda_compute_auxillary_space,
1036 lambda_transform_legal_p): Likewise.
1037 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1038 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1039 lhd_incomplete_type_error, lhd_expand_expr,
1040 lhd_types_compatible_p, lhd_tree_size): Likewise.
1041 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1042 * local-alloc.c (update_equiv_regs): Likewise.
1043 * loop-unroll.c (peel_loop_completely
1044 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1045 peel_loop_simple, unroll_loop_stupid,
1046 analyze_iv_to_split_insn): Likewise.
1047 * loop.c (gen_prefetch, find_and_verify_loops,
1048 basic_induction_var): Likewise.
1049 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1050 * value-prof.c (tree_find_values_to_profile): Likewise.
1051 * varasm.c (named_section, default_assemble_integer,
1052 decode_addr_const): Likewise.
1054 2005-04-21 Alan Modra <amodra@bigpond.net.au>
1055 Fariborz Jahanian <fjahanian@apple.com>
1057 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1058 portion of argument passed in fpr.
1059 * expr.c (emit_push_insn): Fix computation of 'offset' used to
1060 decide on partial argument save on stack.
1062 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1064 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1067 2005-04-21 Jan Hubicka <jh@suse.cz>
1069 * cgraphunit.c: Include tree-pass.h
1070 (cgraph_decide_recursive_inlining,
1071 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1072 cgraph_decide_inlining): Dump goes to dump_file.
1073 (cgraph_optimize): Call ipa passes instead of inliner.
1074 (cgraph_gate_inlining, pass_ipa_inline): New.
1075 * tree-optimize.c (all_ipa_passes): New static variable.
1076 (register_one_dump_file): Dead with IPA passes.
1077 (register_dump_files): Likewise.
1078 (init_tree_optimization_passes): Initialize IPA passes.
1079 (execute_todo): Do cgraph dump when asked to, do not dump function body
1081 * tree-pass.h (TODO_dump_cgraph): New macro.
1082 (ipa_passes): Declare.
1083 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1085 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1087 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1088 gcc_assert instead of abort.
1089 (classify_argument, examine_argument, construct_container,
1090 contains_128bit_aligned_vector_p, ix86_check_movabs,
1091 standard_80387_constant_opcode, standard_80387_constant_rtx,
1092 ix86_initial_elimination_offset, ix86_compute_frame_layout,
1093 pro_epilogue_adjust_stack, ix86_expand_epilogue,
1094 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1095 legitimize_tls_address, output_pic_addr_const,
1096 i386_output_dwarf_dtprel, put_condition_code, print_reg,
1097 get_some_local_dynamic_name, print_operand, print_operand_address,
1098 output_387_binary_op, emit_i387_cw_initialization,
1099 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1100 ix86_expand_clear, ix86_expand_binary_operator,
1101 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1102 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1103 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1104 ix86_expand_branch, ix86_expand_setcc,
1105 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1106 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1107 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1108 memory_address_length, ix86_attr_length_immediate_default,
1109 ix86_attr_length_address_default, ix86_agi_dependant,
1110 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1111 ix86_expand_binop_builtin, ix86_force_to_memory,
1112 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1113 x86_emit_floatuns): Likewise.
1114 * config/i386/netware.c (gen_regparm_prefix,
1115 i386_nlm_strip_name_encoding): Likewise.
1116 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1118 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1120 * optabs.c (gen_condiational_trap): Remove #define.
1121 (add_equal_note): Assertify. Remove explicit indirection from
1122 call via function pointer.
1123 (expand_ternary_op, expand_simple_binop, expand_binop,
1124 expand_twoval_unop, expand_twoval_binop,
1125 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1126 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
1127 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1128 prepare_float_lib_cmp, emit_conditional_move,
1129 emit_conditional_add, gen_add2_insn, gen_add3_insn,
1130 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1131 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1132 vector_compare_rtx, expand_vec_cond_expr): Likewise.
1134 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1136 * vec.h: Update API to separate allocation mechanism from type.
1137 (VEC_safe_grow): New.
1138 * vec.c (calculate_allocation): New.
1139 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1140 (vec_gc_free, vec_heap_free): Remove.
1141 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
1143 (mangle_macro_name): New.
1144 (struct macro_def): New.
1145 (struct macro): Add multiple argument values.
1146 (macro_expans_end): New.
1147 (push_macro_expansion): Chain on new macro. Process multiple
1148 args, create follow on expansion. Return follow on argument.
1149 (macro_input): Deal with multiple arguments.
1151 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1152 (struct tree_binfo): Adjust.
1153 * basic-block.h: Define VEC(edge,gc).
1154 (struct edge_def): Adjust.
1155 (struct basic_block_def, struct edge_iterator): Likewise.
1156 (ei_container, ei_start_1, ei_last_1): Likewise.
1157 * cfg.c (connect_src, connect_dest): Likewise.
1158 * cfgrtl.c (force_nonfallthru_and_redirect)
1159 * dbxout.c (dbxout_type)
1160 * dwarf2out.c (gen_member_die)
1161 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1162 (gcc_tree_to_linear_expression): Adjust.
1163 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1164 lbv_to_gcc_expression, lle_to_gcc_expression,
1165 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1166 perfect_nestify): Likewise.
1167 * lambda.h (gcc_loopnest_to_lambda_loopnest,
1168 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1169 * profile.c (instrument_values): Adjust.
1170 * tree-cfg.c (modified_noreturn_calls): Adjust.
1171 (remove_fallthru_edge): Likewise.
1172 * tree-dump.c (dequeue_and_dump): Adjust.
1173 * tree-flow-inline.h (mark_stmt_modified): Adjust.
1174 * tree-flow.h (modified_noreturn_calls): Adjust.
1175 (tree_on_heap): Remove. (yay!)
1176 (register_new_def): Adjust.
1177 * tree-into-ssa.c: Define VEC(int,heap).
1178 (block_defs_stack): Adjust.
1179 (find_idf, insert_phi_nodes, register_new_def,
1180 rewrite_initialize_block, rewrite_finalize_block,
1181 register_new_update_single, rewrite_update_init_block,
1182 rewrite_update_fini_block, rewrite_blocks,
1183 ssa_rewrite_finalize_block, ssa_register_new_def,
1184 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1185 * tree-loop-linear.c (linear_transform_loops): Adjust.
1186 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1187 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1188 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1189 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1190 vrp_variables_stack): Adjust declarations.
1191 (tree_ssa_dominator_optimize): Adjust.
1192 (dom_opt_initialize_block, remove_local_expressions_from_table,
1193 restore_nonzero_vars_to_original_value,
1194 restore_vars_to_original_value,
1195 restore_currdefs_to_original_value, dom_opt_finalize_block,
1196 record_var_is_nonzero, record_cond, record_const_or_copy_1,
1197 optimize_stmt, update_rhs_and_lookup_avail_expr,
1198 lookup_avail_expr, record_range): Likewise.
1199 * tree-ssa-pre.c: Define VEC(basic_block,heap).
1200 (compute_antic_aux): Adjust.
1201 (inserted_exprs, create_expression_by_pieces,
1202 insert_into_preds_of_block, eliminate, mark_operand_necessary,
1203 remove_dead_inserted_code, fini_pre): Likewise.
1204 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1205 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
1206 ssa_prop_init): Likewise.
1207 * tree-ssa.c: Define VEC(bitmap,heap).
1208 (verify_name_tags): Adjust.
1209 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1210 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1211 tree_divmod_values_to_profile, tree_find_values_to_profile,
1212 value_profile_transformations): Likewise.
1213 * value-prof.h: Define VEC(histogram_value,heap).
1214 * varasm.c: Remove alias_pair pointer typedef, define
1216 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1218 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1219 not a pointer to it. Create an object vector.
1220 (extern_symbols): Turn into an object vector.
1221 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1223 2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
1226 * Makefile.in (tree-chrec.o): Depend on params.h.
1227 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1229 * tree-chrec.c: Depend on params.h. Replace build with buildN,
1230 and fold build with fold_buildN.
1231 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1232 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1233 (tree_contains_chrecs): Compute an estimation of the size of the
1235 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1236 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1237 * tree-scalar-evolution.c (simple_iv): Ditto.
1238 * doc/invoke.texi (scev-max-expr-size): Documented.
1240 2005-04-21 Richard Sandiford <rsandifo@redhat.com>
1242 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1243 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1244 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1245 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1246 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1247 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1248 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1249 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1250 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1251 (darwin_fix_and_continue_switch): Delete.
1252 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1253 (SUBTARGET_SWITCHES): Delete.
1254 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1255 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1256 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1257 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1258 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1259 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1260 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1261 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1262 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1263 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1264 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1265 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1266 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1267 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1268 (TARGET_64BIT): Undef before redefining.
1269 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1270 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1271 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1272 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1273 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1274 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1275 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1276 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1277 (ix86_debug_arg_string, ix86_debug_addr_string)
1278 (ix86_align_loops_string, ix86_align_jumps_string)
1279 (ix86_align_funcs_string): Delete.
1280 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1281 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1282 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1283 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1284 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1285 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1286 (SUBTARGET_SWITCHES): Delete.
1287 * config/i386/i386.c (ix86_debug_arg_string): Delete.
1288 (ix86_debug_addr_string): Delete.
1289 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1290 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1291 (ix86_align_loops_string, ix86_align_jumps_string)
1292 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1293 (ix86_align_funcs_string): Make static.
1294 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1295 (ix86_handle_option): New function.
1296 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1297 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1298 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1299 of darwin_fix_and_continue_switch.
1300 (darwin_one_byte_bool): Delete.
1301 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1302 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1303 to darwin_one_byte_bool.
1304 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1305 * config/i386/djgpp.opt, config/i386/i386.opt,
1306 * config/i386/sco5.opt: New files.
1308 2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1310 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1311 fp_zero_operand, fp_register_operand, intreg_operand,
1312 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1313 call_operand, call_operand_address, tgd_symbolic_operand,
1314 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1315 symbolic_operand, symbolic_memory_operand, label_ref_operand,
1316 sp64_medium_pic_operand, data_segment_operand,
1317 text_segment_operand, splittable_symbolic_memory_operand,
1318 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1319 eq_or_neq, normal_comp_operator, noov_compare_op,
1320 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1321 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1322 const64_operand, const64_high_operand, arith11_operand,
1323 arith10_operand, arith_double_operand, arith_double_4096_operand,
1324 arith_double_add_operand, arith11_double_operand,
1325 arith10_double_operand, small_int, small_int_or_double,
1326 uns_small_int, uns_arith_operand, clobbered_register,
1327 input_operand, compare_operand): Delete.
1328 (sparc_emit_set_const32): Use predicates in assertion. Remove special
1329 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1330 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1331 (GEN_HIGHINT64, GEN_INT64): Delete.
1332 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1333 gen_safe_XOR64): Adjust for above deletion.
1334 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1335 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1336 (legitimate_constant_p): Use const_zero_operand instead.
1337 (sparc_extra_constraint_check): Likewise.
1338 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1339 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1340 (PREDICATE_CODES): Delete.
1341 * config/sparc/sparc.md: Include predicates.md.
1342 (All patterns): Adjust for new predicate names.
1343 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1344 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1345 (movdi): Use general_operand predicate.
1346 (movdi_sp64_dbl): Delete.
1347 (movdi_const64_special): Add 'N' constraint.
1348 (movdicc): Use arith10_operand predicate.
1349 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1350 (movdi_cc_reg_sp64): Use arith10_operand predicate.
1351 (movdi_cc_reg_sp64_trunc): Delete.
1352 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1353 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1354 (subdi3_sp32): Delete.
1355 (subdi3_insn_sp32): Change to define_insn_and_split.
1356 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1357 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1358 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1359 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1360 small_int_operand predicate.
1361 (divdi3, udivdi3): Use arith_operand predicate.
1362 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1363 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1364 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1365 (xordi3_sp64_dbl): Delete.
1366 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1367 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1368 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1369 cmp_ccx_set_not): Use arith_operand predicate.
1370 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1371 * config/sparc/predicates.md: New file.
1373 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1375 PR tree-optimization/14846
1376 * fold-const.c (fold_single_bit_test_into_sign_test): New,
1378 (fold_single_bit_test): ... here.
1379 (fold_binary): Call fold_single_bit_test_into_sign_test
1380 instead of fold_single_bit_test.
1382 2005-04-20 James E Wilson <wilson@specifixinc.com>
1385 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1386 is another declaration.
1388 2005-04-21 Hans-Peter Nilsson <hp@axis.com>
1390 * config/cris/predicates.md: New file.
1391 * config/cris/cris-protos.h (cris_store_multiple_op_p)
1392 (cris_movem_load_rest_p): Declare.
1393 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1394 (cris_movem_load_rest_p): Ditto. Globalize.
1395 (cris_bdap_operand, cris_bdap_biap_operand,
1396 cris_orthogonal_operator, cris_commutative_orth_op,
1397 cris_operand_extend_operator,
1398 cris_additive_operand_extend_operator, cris_extend_operator,
1399 cris_plus_or_bound_operator, cris_mem_op,
1400 cris_general_operand_or_symbol,
1401 cris_general_operand_or_gotless_symbol,
1402 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1403 cris_load_multiple_op): Remove predicate functions.
1404 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1405 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1406 * config/cris/cris.h (PREDICATE_CODES): Don't define.
1407 * config/cris/cris.md: Include predicates.md.
1408 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1410 2005-04-20 Ian Lance Taylor <ian@airs.com>
1412 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1413 * c-common.h (STMT_EXPR_STMT): Don't define.
1414 (STMT_EXPR_NO_SCOPE): Don't define.
1415 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1416 * c-pretty-print.c (pp_c_primary_expression): Likewise.
1417 (pp_c_expression): Likewise.
1419 2005-04-20 Richard Henderson <rth@redhat.com>
1422 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1424 2005-04-20 Jeff Law <law@redhat.com>
1426 * reload1.c (reload): Ignore equivalences between pseudos and
1429 2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
1432 * c-tree.h (struct c_label_list): Update comment.
1433 (struct c_label_context): Rename to struct c_label_context_se.
1434 (label_context_stack): Rename to label_context_stack_se.
1435 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1436 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1437 c_end_vm_scope): New.
1438 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1439 * c-decl.c (pop_scope): Call c_end_vm_scope.
1440 (pushdecl): Call c_begin_vm_scope for variably modified
1442 (define_label): Check for jumping into scope of identifier with
1443 variably modified type. Push label on stack for those defined at
1444 current context of identifiers with variably modified type.
1445 (start_function): Create stack level for context of identifiers
1446 with variably modified type.
1447 (finish_function): Pop stack level for context of identifiers with
1448 variably modified type.
1449 * c-typeck.c (label_context_stack): Rename to
1450 label_context_stack_se.
1451 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1452 (c_finish_goto_label): Check for jumping into scope of identifier
1453 with variably modified type. Push label on stack for those jumped
1454 to from current context of identifiers with variably modified
1456 (struct c_switch): Add blocked_vm.
1457 (c_start_case): Initialize blocked_vm.
1458 (do_case): Check blocked_vm.
1459 (c_finish_case): Add comment.
1460 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1461 variable label_context_stack.
1463 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1465 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1466 conditional_replacement, value_replacement, abs_replacement,
1468 (replace_phi_edge_with_variable): Remove argument BB.
1469 (conditional_replacement, value_replacement,
1470 minmax_replacement, abs_replacement): Remove argument PHI_BB.
1471 Update a call to replace_phi_edge_with_variable.
1473 * tree-ssa-phiopt.c: Fix comments.
1475 2005-04-20 Michael Matz <matz@suse.de>
1478 * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1481 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1483 * tree-ssa-phiopt.c: Fix comment typos.
1485 PR tree-optimization/21116
1486 * tree-ssa-phiopt.c: Fix a typo.
1488 2005-04-19 Richard Henderson <rth@redhat.com>
1490 * builtins.c (expand_builtin_sync_operation): Revert last change.
1491 * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1493 (expand_compare_and_swap_loop): Likewise.
1494 (expand_sync_operation): Remove fallback from NAND to AND; invert
1495 memory operand when expanding from cmpxchg.
1496 (expand_sync_fetch_operation): Likewise.
1497 * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1500 * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1501 when implementing NAND. Fix double-add for AFTER.
1502 * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1503 (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1504 (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
1506 (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1509 * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1510 to return old memory value.
1511 (sync_compare_and_swap_cc<IMODE>): Likewise.
1513 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1514 return pre-reload. Don't consider output or anti dependencies.
1515 * config/ia64/sync.md (IMODE): New.
1516 (modesuffix): Add QI and HI.
1517 (memory_barrier): Simplify expansion.
1518 (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1519 (cmpxchg_acq_<IMODE>): Likewise.
1520 (sync_lock_test_and_set<IMODE>): Likewise.
1521 (sync_lock_release<IMODE>): Likewise.
1523 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1525 * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1528 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
1530 * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
1532 2005-04-20 Michael Pogue <michael.pogue@sun.com>
1533 Joseph S. Myers <joseph@codesourcery.com>
1535 * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1536 * c-typeck.c (build_c_cast): Check these options.
1537 * doc/invoke.texi: Document these options.
1539 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
1541 * tree-ssa-phiopt.c: Update a comment about the pass.
1543 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
1545 * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1546 config/mcore/mcore.c: Fix comment typos.
1548 2005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
1550 * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1551 * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1553 2005-04-19 Paul Brook <paul@codesourcery.com>
1555 * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
1557 2005-04-19 Andrew Haley <aph@redhat.com>
1560 * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
1561 looking at a field's bitpos.
1563 2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1565 * system.h (fopen, fdopen, freopen): Define these to the unlocked
1566 libiberty functions.
1568 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
1570 PR tree-optimization/21096
1571 * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
1573 2005-04-19 Alan Modra <amodra@bigpond.net.au>
1576 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
1577 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
1579 2005-04-19 Alexandre Oliva <aoliva@redhat.com>
1581 * tree-cfg.c (dump_function_to_file): Use cfun info only if it
1582 refers to the function being dumped.
1584 2005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
1586 * varasm.c (assemble_start_function): Remove reset of in_section.
1588 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
1590 PR tree-optimization/21085
1591 * fold-const (fold_binary): Don't change X % -C to X % C if C has
1594 2005-04-19 Ben Elliston <bje@au.ibm.com>
1596 * doc/invoke.texi (Optimize Options): Refer to the correct
1597 optimisation flag -ftree-dominator-opts, not -ftree-dom.
1599 2005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
1601 * config/rs6000/rs6000.c (machopic_output_stub): Increase
1602 alloca argument to be big enough.
1604 2005-04-18 Alexandre Oliva <aoliva@redhat.com>
1607 * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
1610 2005-04-18 Tom Tromey <tromey@redhat.com>
1612 * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
1615 2005-04-18 Richard Henderson <rth@redhat.com>
1617 * config/alpha/alpha.c (alpha_split_atomic_op): New.
1618 (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
1619 (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
1620 * config/alpha/alpha-protos.h: Update.
1621 * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
1622 (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
1623 (attr type): Add ld_l, st_c, mb.
1624 (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
1625 iornotsi3, xorsi_internal, xornotsi3): New.
1626 * config/alpha/ev4.md (ev4_ld): Add ld_l.
1627 (ev4_ist_c, ev4_mb): New.
1628 * config/alpha/ev5.md (ev5_st): Add st_c, mb.
1630 * config/alpha/ev6.md (ev6_ild): Add ld_l.
1631 (ev6_ist): Add st_c.
1633 * config/alpha/sync.md: New file.
1635 2005-04-18 Richard Henderson <rth@redhat.com>
1637 * builtins.c (expand_builtin_sync_operation): Fold nand to and
1640 * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
1642 2005-04-18 Devang Patel <dpatel@apple.com>
1644 * config/rs6000/atlivec.md (mulv4si3): New pattern.
1646 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
1648 PR tree-optimization/20922
1649 * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
1650 Fold X + c >= X and fold X - c <= X to true.
1652 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
1654 * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
1656 (emergency_labeled_state_free): Likewise.
1658 2005-04-18 Nick Clifton <nickc@redhat.com>
1660 * config/h8300/h8300.md (jump): Remove prescan parameter from
1661 calls to final_scan_insn.
1663 * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
1664 parameter from calls to final_scan_insn.
1666 * config.gcc (m68hc12): Use the m68hc11.opt file for target
1668 (v850e, v850e1): Use the v850.opt file for target specific
1671 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
1673 PR tree-optimization/21001
1674 * tree-optimize.c (init_tree_optimization_passes): Move the
1675 first pass_forwprop immediately before pass_vrp.
1677 2005-04-17 Ian Lance Taylor <ian@airs.com>
1679 * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
1680 * c-common.c (c_sizeof_or_alignof_type): Change second parameter
1681 from enum tree_code op to bool is_sizeof.
1682 * c-common.h (c_sizeof_or_alignof_type): Update declaration.
1683 (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
1684 * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
1686 (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
1688 (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
1691 2005-04-17 Ian Lance Taylor <ian@airs.com>
1693 * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
1695 2005-04-17 Richard Henderson <rth@redhat.com>
1697 * config/alpha/alpha.c (va_list_skip_additions): Only define if
1699 (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
1700 (alpha_stdarg_optimize_hook): Likewise. Allow for one more round
1701 of indirection through ssa names while looking for the gpr counter
1703 (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
1704 saved va_list_gpr_size and va_list_fpr_size.
1706 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
1708 * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
1709 both pointers or both integers.
1711 * tree-vrp.c (maybe_add_assert_expr): Don't assert
1712 ASSERT_EXPRs for single-use variable.
1714 * tree-into-ssa.c: Fix a comment typo.
1716 2005-04-17 Richard Sandiford <rsandifo@redhat.com>
1718 * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
1719 -mipsN before forcing a default of -mips2.
1721 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
1723 * predict.h (IS_TAKEN): Remove.
1724 * rtl.h (NOTE_PREDICTION): Likewise.
1726 * modulo-sched.c (CFG_HOOKS): Remove.
1728 * c-parser.c (N_C_TTYPES): Remove.
1730 * tree-flow-inline.h (get_stmt_operands): Remove.
1731 * lambda-code.c, tree-ssa-loop-unswitch.c,
1732 tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
1733 tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
1734 tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
1735 calls to get_stmt_operands.
1736 * doc/tree-ssa.texi: Don't mention get_stmt_operands.
1738 2005-04-17 Richard Henderson <rth@redhat.com>
1741 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
1742 of CUMULATIVE_ARGS past the last named argument.
1743 (alpha_va_start): Expect pretend_args_size only if strictly less than
1746 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
1749 * builtins.c (expand_builtin_strcat): Convert the result of
1750 strlen to the right type.
1751 * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
1752 avoid creating type mismatches.
1753 <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
1756 * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
1758 2005-04-16 Richard Henderson <rth@redhat.com>
1761 * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
1762 Use the mode of boolean_type_node when the user doesn't provide one.
1763 * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
1765 2005-04-16 Alexandre Oliva <aoliva@redhat.com>
1768 * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
1771 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
1774 2005-04-16 Roger Sayle <roger@eyesopen.com>
1775 Steven Bosscher <stevenb@suse.de>
1777 * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
1778 (fold_unary_to_constant): Likewise.
1780 2005-04-16 Kazu Hirata <kazu@cs.umass.edu>
1782 * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
1785 2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
1787 * doc/install.texi (Specific): Avoid using asterisks in @anchor
1788 names related to target triplets.
1789 Remove i?86-*-esix from platform directory.
1790 Remove powerpc-*-eabiaix from platform directory.
1792 2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
1795 * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
1796 falling through from SUBREG case to REG.
1798 2005-04-15 Roger Sayle <roger@eyesopen.com>
1800 * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
1801 (fold_binary): Update comment mentioning fold_relational_hi_lo.
1802 (fold_binary_to_constant): Simplify using fold_binary.
1803 (fold_unary_to_constant): Likewise, simplify using fold_unary.
1805 2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1807 * gthr-posix.c (pthread_cancel): Define.
1808 (pthread_mutexattr_init): Likewise.
1809 (pthread_mutexattr_settype): Likewise.
1810 (pthread_mutexattr_destroy): Likewise.
1812 2005-04-15 David S. Miller <davem@davemloft.net>
1815 * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
1817 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1819 PR tree-optimization/21031
1820 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
1821 (forward_propagate_into_cond_1): Call it. Forward propagate
1822 integer-integer casts into COND_EXPRs.
1824 2005-04-15 Dave Korn <dave.korn@artimi.com>
1826 * gcc.c (default_compilers): Clarify obscure error message when
1827 reading from standard input.
1829 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1831 * basic-block.h (PROP_EQUAL_NOTES): Remove.
1832 * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
1834 * tree-ssa-alias.c (init_alias_info): Remove a call to
1837 2005-04-15 Andrew MacLeod <amacleod@redhat.com>
1839 * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
1840 of non-virtual PHI nodes like we use to.
1842 2005-05-15 Paolo Bonzini <bonzini@gnu.org>
1844 * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
1845 (attr_copy_rtx): Do not use it.
1847 2005-04-15 Andrew Macleod <amacleod@redhat.com>
1849 * doc/tree-ssa.texi: Grammer/abbreviation updates.
1851 2005-04-15 Diego Novillo <dnovillo@redhat.com>
1853 * tree-vect-transform.c (vectorizable_store): Mark necessary
1854 objects in the vectorized store needing renaming. Update the
1855 SSA graph for V_MAY_DEF operands in the original store.
1857 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
1859 * tree-ssa-pre.c (compute_avail): It's okay to have
1860 TREE_INVARIANT's here, and value number the resulting expressions.
1861 (create_expression_by_pieces): Make sure operands that were
1862 min_invariant when we started, stay that way.
1864 2005-04-15 David Edelsohn <edelsohn@gnu.org>
1866 * doc/install.texi (*-ibm-aix*): Add comment about system limits.
1868 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1870 PR tree-optimization/20936.
1871 * tree-ssa-ccp.c (visit_assignment): Fix a typo.
1873 2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1875 * doc/invoke.texi: Fix typos.
1876 * doc/md.texi: Likewise.
1877 * doc/rtl.texi: Likewise.
1878 * doc/sourcebuild.texi: Likewise.
1879 * doc/tm.texi: Likewise.
1881 2005-04-15 Uros Bizjak <uros@kss-loka.si>
1883 PR tree-optimization/21004
1884 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
1885 and floorl in c99 mode only.
1886 * builtins.c (expand_builtin_int_roundingfn): Assert that
1887 fallback_fndecl is not NULL_TREE.
1889 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
1891 * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
1892 * basic-block.h: Update the prototype for
1893 purge_all_dead_edges.
1894 * cfgexpand.c (tree_expand_cfg): Update a call to
1895 purge_all_dead_edges.
1896 * combine.c (combine_instructions): Likewise.
1897 * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
1898 rest_of_handle_cse2, rest_of_handle_gcse,
1899 rest_of_handle_postreload): likewise.
1901 2005-04-15 Alexandre Oliva <aoliva@redhat.com>
1904 * gimplify.c (gimplify_addr_expr): Compensate for removal of
1905 e.g. cv-qualification conversions.
1907 2005-04-14 Mike Stump <mrs@apple.com>
1909 * config/darwin-c.c (framework_construct_pathname): We must
1910 find all headers of a framework in the first instance of it
1911 found in the seach path.
1913 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
1915 PR tree-optimization/21021
1916 * tree-vrp.c (compare_values): Work around a bug in the front
1917 end that produces a comparison of mismatched types.
1919 2004-04-14 Richard Henderson <rth@redhat.com>
1921 * config/ia64/ia64.h (enum fetchop_code): Remove.
1922 (enum ia64_builtins): Move ...
1923 * config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
1924 members except BSP and FLUSHRS.
1925 (ia64_init_builtins): Remove __sync builtins.
1926 (ia64_expand_builtin): Likewise.
1927 (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
1928 (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
1929 (ia64_expand_lock_release): Remove.
1930 * config/ia64/ia64.md (mf): Move to sync.md.
1931 (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
1932 cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
1933 * config/ia64/sync.md: New file.
1934 (memory_barrier): Rename from mf.
1935 (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
1936 (cmpxchg_acq_<I48MODE>): Likewise.
1937 (sync_lock_test_and_set<I48MODE>): Likewise.
1939 * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
1940 to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
1942 2004-04-14 Richard Henderson <rth@redhat.com>
1944 * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
1945 (ix86_compare_emitted): New.
1946 (ix86_expand_compare): Use ix86_compare_emitted if set.
1947 (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
1948 and ix86_compare_op0 are set.
1949 * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
1950 (TARGET_CMPXCHG, TARGET_XADD): New.
1951 (ix86_compare_emitted): Declare.
1952 * config/i386/i386.md: Include sync.md
1953 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
1954 (UNSPECV_XCHG, UNSPECV_LOCK): New.
1955 * config/i386/sync.md: New file.
1957 2004-04-14 Richard Henderson <rth@redhat.com>
1960 * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
1961 BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
1962 BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
1963 BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
1964 BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
1965 BT_FN_I8_VPTR_I8_I8): New.
1966 * builtins.def (DEF_SYNC_BUILTIN): New.
1967 (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
1968 BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
1969 BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
1970 BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
1971 BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
1972 BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
1973 BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
1974 BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
1975 BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
1976 BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
1977 BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
1978 BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
1979 BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
1980 BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
1981 BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
1982 BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
1983 BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
1984 BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
1985 BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
1986 BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
1987 BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
1988 BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
1989 BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
1990 BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
1991 BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
1992 BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
1993 BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
1994 BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
1995 BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
1996 BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
1997 BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
1998 BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
1999 BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2000 BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2001 BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2002 BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2003 BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2004 BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2005 BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2006 BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2007 BUILT_IN_SYNCHRONIZE: New.
2008 * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2009 as a function. Accept __sync_ as a prefix as well.
2010 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2011 expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2012 expand_builtin_lock_release): New.
2013 (expand_builtin): Call them.
2014 * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2015 neither BOTH_P nor FALLBACK_P are defined.
2016 (builtin_type_for_size): New.
2017 (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2018 (resolve_overloaded_builtin): New.
2019 * c-common.h (resolve_overloaded_builtin): Declare.
2020 (builtin_type_for_size): Declare.
2021 * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2022 * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2023 sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2024 sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2025 sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2026 sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2027 sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2028 sync_compare_and_swap_cc, sync_lock_test_and_set,
2029 sync_lock_release): New.
2030 * optabs.h: Declare them.
2031 * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2032 expand_sync_operation, expand_sync_fetch_operation,
2033 expand_sync_lock_test_and_set): Declare.
2034 * genopinit.c (optabs): Add sync optabs.
2035 * optabs.c (init_optabs): Initialize sync optabs.
2036 (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2037 expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2038 expand_sync_operation, expand_sync_fetch_operation,
2039 expand_sync_lock_test_and_set): New.
2040 * doc/extend.texi (Atomic Builtins): New section
2041 * doc/md.texi (Standard Names): Add sync patterns.
2043 2005-04-14 Alexandre Oliva <aoliva@redhat.com>
2045 * tree-eh.c (lower_try_finally_copy): Generate new code in
2046 response to goto_queue entries as if the queue was sorted by
2047 index, not pointers.
2048 (lower_try_finally_switch): Likewise.
2050 2005-04-14 Richard Henderson <rth@redhat.com>
2052 * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2053 (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
2055 (ix86_expand_fp_movcc): Update to match.
2056 (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2057 * config/i386/i386-protos.h: Update.
2058 * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2059 (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2061 2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
2063 * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2066 2005-04-14 Julian Brown <julian@codesourcery.com>
2068 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2069 link failures on ppc64 Linux.
2071 2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
2073 * config.gcc: Set cpu_type for s390.
2075 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2077 Fix PR tree-optimization/20963
2078 * tree-ssa-pre.c (compute_avail): Remove special case for
2080 (create_expression_by_pieces): Add value numbers for forced out
2083 2005-04-14 Hans-Peter Nilsson <hp@axis.com>
2085 * config/cris/cris.md: Replace references to (reg:SI 16) with
2086 (reg:SI CRIS_SRP_REGNUM).
2088 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2090 PR tree-optimization/20657
2091 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2092 create an appropriate range from it.
2094 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2096 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2097 <UNSPEC_FIST_CEIL> case.
2099 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2100 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2101 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2102 to implement lfloor and llfloor built-ins as x87 intrinsic function.
2103 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2104 (lfloor<mode>2): New expanders.
2105 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2106 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2107 to implement lceil and llceil built-ins as x87 intrinsic function.
2108 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2109 (lceil<mode>2): New expanders.
2111 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2113 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2114 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2116 2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
2119 * config/s390/s390-modes.def: Define TFmode.
2121 2005-04-13 Richard Sandiford <rsandifo@redhat.com>
2123 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2124 (JUMP_TABLES_IN_TEXT_SECTION): Define.
2125 * config/mips/mips.c (mips16_insn_length): Remove reference to
2126 JUMP_TABLES_IN_TEXT_SECTION.
2128 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2130 * simplify-rtx.c (simplify_binary_operation_1): Return
2131 scalar or vector of constant 0, depending on the xor's
2134 2005-04-13 Dale Johannesen <dalej@apple.com>
2136 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
2137 (objc-act.o): Ditto.
2138 * objc/objc-act.c (objc_gimplify_expr): New.
2139 (objc_get_callee_fndecl): New.
2140 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
2141 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
2142 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
2144 2005-04-13 Devang Patel <dpatel@apple.com>
2146 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2149 2005-04-13 Hans-Peter Nilsson <hp@axis.com>
2151 CRIS prologue as RTL.
2152 * config/cris/cris-protos.h (cris_emit_movem_store)
2153 (cris_expand_prologue): Prototype.
2154 * config/cris/cris.c (struct machine_function): New member
2156 (cfa_label_num, cris_target_asm_function_prologue): Remove.
2157 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2158 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2159 (cris_load_multiple_op, cris_return_address_on_stack)
2160 (cris_return_address_on_stack_for_return): ISO-Cify.
2161 (cris_store_multiple_op): New predicate function.
2162 (cris_expand_prologue, cris_emit_movem_store): New functions.
2163 (cris_print_operand) <case 'O'>: Handle modifications other than
2165 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2166 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2167 (cris_gen_movem_load): Rearrange slightly to make local variable
2168 src a parameter, removing osrc.
2169 (cris_setup_incoming_varargs): Set machine_function member
2170 stdarg_regs to correspond to the number of registers that need to
2172 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2174 (PREDICATE_CODES): Add cris_store_multiple_op. Make
2175 cris_general_operand_or_gotless_symbol accept UNSPEC.
2176 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2177 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2178 ("*cris_store_multiple"): New pattern. Tweak common comment above
2179 this and "*cris_load_multiple".
2180 ("prologue"): New define_expand.
2182 * config/cris/cris.md ("epilogue"): Conditionalize on
2183 TARGET_PROLOGUE_EPILOGUE.
2185 2005-04-13 Steve Ellcey <sje@cup.hp.com>
2188 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2189 fpsr 0 instead of fpsr 1.
2190 (divsf3_internal_thr): Ditto.
2191 (divdf3_internal_lat): Ditto.
2192 (divdf3_internal_thr): Ditto.
2193 (divxf3_internal_lat): Ditto.
2194 (divxf3_internal_thr): Ditto.
2196 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2198 PR tree-optimization/20913
2199 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2201 PR tree-optimization/20702
2202 * tree-vrp.c (maybe_add_assert_expr): Recurse into
2203 dominator children that haven't been walked into.
2205 2005-04-13 Julian Brown <julian@codesourcery.com>
2207 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2208 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2211 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2213 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2214 config/i386/sse.md: Fix comment typos.
2216 * genattrtab.c (NULL_ATTR): Remove.
2217 * ifcvt.c (NULL_EDGE): Likewise.
2219 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2221 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2222 NOTE_PREDICT): Remove.
2224 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2226 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2227 * configure: Regenerate.
2228 * config.in: Likewise.
2229 * system.h: Declare vsnprintf if not already declared.
2231 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2233 * optc-gen.awk: Handle stand-alone Mask records.
2234 * opth-gen.awk: Likewise.
2235 * doc/options.texi (Option file format): Document them.
2236 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2237 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2238 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2239 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2240 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2241 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2242 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2243 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2244 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2245 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2246 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2247 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2248 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2249 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2250 TARGET_LONG_DOUBLE_128): Likewise.
2251 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2252 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2253 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2254 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2255 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2256 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2257 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2258 * config/sparc/sparc.c (fpu_option_set): New global.
2259 (sparc_handle_option): New function.
2260 (sparc_override_options): Test fpu_option_set.
2261 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2262 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2263 * config/sparc/sparc.opt: New file.
2264 * config/sparc/little-endian.opt: Likewise.
2265 * config/sparc/long-double-switch.opt: Likewise.
2267 2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
2269 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2270 (bfin_handle_options): Set it if -mshared-library-id= is seen.
2271 * config/bfin/bfin.opt (mshared-library-id=): Lose
2272 Var(bfin_lib_id_given).
2274 2005-04-13 Matt Thomas <matt@3am-software.com>
2276 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2279 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
2281 * rtl.h (CLEAR_RTX_FLAGS): Remove.
2283 * cgraphunit.c (INSNS_PER_CALL): Remove.
2285 * tree-ssa-forwprop.c (vars,
2286 record_single_argument_cond_exprs,
2287 substitute_single_use_vars): Remove.
2288 (forward_propagate_into_cond_1, forward_propagate_into_cond):
2290 (tree_ssa_forward_propagate_single_use_vars): Call
2291 forward_propagate_into_cond for each COND_EXPR.
2293 * tree-inline.c (INSNS_PER_STMT): Remove.
2295 2005-04-12 Richard Henderson <rth@redhat.com>
2297 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2298 (ix86_expand_sse_fp_minmax): ... from ...
2299 (ix86_expand_fp_movcc): ... here.
2300 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2301 * config/i386/i386-protos.h: Update.
2302 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2303 (sse_setccsf, sse_setccdf): Allow before reload.
2304 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2305 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2306 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2307 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2308 (anddf3, nanddf3, iordf3, xordf3): New.
2310 2005-04-12 Jeff Law <law@redhat.com>
2312 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2313 (tree-ssa-uncprop.o): Add dependencies.
2314 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2315 * tree-flow.h (remove_useless_stmts): Remove prototype.
2316 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2317 remove_useless_stmts.
2318 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2319 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2320 * tree-pass.h (pass_uncprop): Declare.
2321 * tree-ssa-uncprop.c: New file.
2323 2005-04-12 James E. Wilson <wilson@specifixinc.com>
2326 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2328 2005-04-12 Caroline Tice <ctice@apple.com>
2330 Temporary fix for partitioning problems.
2331 * passes.c (rest_of_handle_final): Remove code that
2332 frees unlikely_text_section_name,
2333 * varasm.c (assemble_start_function): Test for partitioning
2334 flag before writing out section labels.
2335 (assemble_end_function): Test for partitioning flag before
2336 writing out section labels.
2338 2005-04-12 Steven Bosscher <stevenb@suse.de>
2339 Stuart Hastings <stuart@apple.com>
2340 Jan Hubicka <jh@suse.cz>
2342 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
2343 references to gt-tree-cfg.h.
2344 * basic-block.h (struct basic_block_def): Don't skip rbi
2345 for garbage collection.
2346 (struct reorder_block_def): Make GTY-able.
2347 (struct control_flow_graph): New structure.
2348 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2349 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2350 but instead defines to the control_flow_graph for cfun.
2351 (label_to_block_map): New define, points to the label map of
2352 the control_flow_graph for cfun.
2353 (n_edges_for_function, n_basic_blocks_for_function,
2354 last_basic_block_for_function, basic_block_info_for_function,
2355 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2356 basic_block_info_for_function, label_to_block_map_for_function):
2357 Counterparts for the above, taking a struct function as an extra
2359 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2360 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2361 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2362 (alloc_rbi_pool, free_rbi_pool): Remove.
2363 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2364 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2366 (cfg_layout_finalize) ... and don't free it here.
2367 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2369 * flow.c (free_basic_block_vars): Set label_to_block_map and
2370 n_edges to zero too.
2371 * function.h (struct function): Add cfg field.
2372 * function.c (allocate_struct_function): Allocate the cfg.
2373 * tree-cfg.c (label_to_block_map): Remove.
2374 (build_tree_cfg): Don't allocate the rbi pool here...
2375 (delete_tree_cfg_annotations): ...and don't free it here.
2376 Also don't nullify label_to_block_map for cfun.
2378 2005-04-12 Caroline Tice <ctice@apple.com>
2380 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2381 Revert my patch from April 9.
2382 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2383 (reorder_basic_blocks): Revert my patch from April 9.
2384 (insert_section_boundary_note): Revert my patch from April 9.
2385 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2386 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2387 (COLD_END_LABEL): Revert my patch from April 9.
2388 (cold_text_section_label): Revert my patch from April 9.
2389 (cold_end_label): Revert my patch from April 9.
2390 (dwarf2out_switch_text_section): Revert my patch from April 9.
2391 (output_aranges): Revert my patch from April 9.
2392 (output_ranges): Revert my patch from April 9.
2393 (output_line_info): Revert my patch from April 9.
2394 (add_location_or_const_value_attribute): Revert my patch from April 9.
2395 (dwarf2out_var_location): Revert my patch from April 9.
2396 (dwarf2out_init): Revert my patch from April 9.
2397 (dwarf2out_finish): Revert my patch from April 9.
2398 * function.h (struct function): Revert my patch from April 9.
2399 * opts.c (decode_options): Revert my patch from April 9.
2400 * output.h (unlikely_section_label, hot_section_label,
2401 hot_section_end_label, cold_section_end_label,
2402 unlikely_text_section_name): Revert my patch from April 9.
2403 * passes.c (rest_of_handle_final): Revert my patch from April 9.
2404 * varasm.c (unlikely_section_label, hot_section_label,
2405 hot_section_end_label, cold_section_end_label,
2406 unlikely_text_section_name): Revert my patch from April 9.
2407 (initialize_cold_section_name): Revert my patch from April 9.
2408 (unlikely_text_section): Revert my patch from April 9.
2409 (in_unlikely_text_section): Revert my patch from April 9.
2410 (named_section): Revert my patch from April 9.
2411 (function_section): Revert my patch from April 9.
2412 (current_function_section): Revert my patch from April 9.
2413 (assemble_start_function): Revert my patch from April 9.
2414 (assemble_end_function): Revert my patch from April 9.
2415 (default_section_type_flags_1): Revert my patch from April 9.
2417 2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2419 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2420 * config/sparc/sparc.md (untyped_call): Save the registers manually.
2422 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2424 2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
2427 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2428 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2430 2004-04-12 Richard Henderson <rth@redhat.com>
2432 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2433 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2434 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2435 (UNSPEC_*, UNSPECV_*): Renumber.
2437 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
2440 From Richard Henderson <rth@redhat.com>:
2441 * tree-mudflap.c (mf_build_check_statement_for): Correct block
2444 2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
2446 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2448 2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
2450 * config/bfin/bfin.c (bfin_library_id_string): Remove.
2451 (bfin_library_id): New variable.
2452 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2453 instead of bfin_library_id_string.
2454 (bfin_handle_option): New function.
2455 (override_options): Remove most code to deal with shared library IDs,
2456 just check they aren't used without -mid-shared-library.
2457 (TARGET_HANDLE_OPTION): Define.
2458 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2459 * config/bfin/bfin.opt (mshared-library-id=): New.
2461 2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
2463 * tree-vect-transform.c: Fix comment typos.
2465 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2467 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2468 split critical edges when not possible/profitable.
2470 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2472 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2473 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2474 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2475 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2476 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2477 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2478 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2479 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2481 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2482 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2483 * config/ns32k/ns32k.opt: New file.
2485 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
2487 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2488 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2489 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2490 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2491 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2492 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2493 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2494 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2495 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2496 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2497 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2498 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2499 (MASK_COLDFIRE): Formatting fixes.
2500 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2501 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2502 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2503 "_current_shared_library_a5_offset_".
2504 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2505 (MASK_ALL_CPU_BITS): New macro.
2506 (m68k_handle_option): New function.
2507 (override_options): Remove handling of m68k_library_id_string.
2508 * config/m68k/m68k.opt: New file.
2509 * config/m68k/ieee.opt: New file.
2511 2005-04-11 Mark Mitchell <mark@codesourcery.com>
2513 * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2514 (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2515 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2516 (TARGET_CXX): Adjust accordingly.
2517 * target.h (struct gcc_target): Remove epxort_class_data. Add
2518 determine_class_data_visibility and class_data_always_comdat.
2519 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2520 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2521 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2522 * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2523 (arm_cxx_determine_class_data_visibility): New.
2524 (arm_cxx_class_data_always_comdat): Likewise.
2525 (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2526 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2527 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2528 * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2529 * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2532 2005-04-11 Devang Patel <dpatel@apple.com>
2534 * tree-data-ref.c (build_classic_dist_vector,
2535 compute_subscript_distance): Make externally visible.
2536 * tree-data-ref.h (build_classic_dist_vector,
2537 compute_subscript_distance): Same.
2538 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2539 Check distance vector against vectorization factor.
2540 (vect_analyze_loop): Determine vectorizaion factor before
2541 analyzing data dependences.
2542 * tree-vectorizer.c (loops_num): Make it externally visible and
2544 * tree-vectorizer.c (vect_loops_num): ... new name.
2545 * tree-vectorizer.h (vect_loops_num): New.
2547 2005-04-11 Devang Patel <dpatel@apple.com>
2549 * tree-vect-analyze.c (vect_analyze_operations): Check
2550 vectorizable codition.
2551 * tree-vect-transform.c (vect_is_simple_cond): New function.
2552 (vectorizable_condition): New function.
2553 (vect_transform_stmt): Handle condition_vec_info_type.
2554 * tree-vectorizer.h (enum stmt_vec_info_type): Add
2555 condition_vec_info_type.
2556 (vectorizable_condition): New.
2558 2005-04-11 Geoffrey Keating <geoffk@apple.com>
2560 * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
2561 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
2562 * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
2564 * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
2565 (SUBTARGET_EXTRA_SPECS): Always 'i386'.
2567 * dwarf2out.c (output_line_info): Don't try to dereference
2568 a NULL current_function_decl.
2570 * config/t-slibgcc-darwin: Don't put shared libraries in
2571 directories other than $(slibdir).
2572 * config/rs6000/darwin.h: Find -m64 libgcc under the name the
2575 2005-04-11 Diego Novillo <dnovillo@redhat.com>
2577 PR tree-optimization/20933
2578 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
2579 logic to reject aliases between read-only and writable
2581 (may_alias_p): ... here.
2582 (get_tmt_for): Do not associate read-only tags to pointers
2583 whose pointed-to type is not read-only.
2584 * tree-ssa.c (verify_ssa): Check that memory stores have at
2585 least one V_MAY_DEF or V_MUST_DEF.
2587 2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2590 * configure.ac (gcc_UNLOCKED_FUNCS): New.
2591 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
2592 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2593 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2595 (fwrite_unlocked): Fix prototype.
2597 * configure, config.in: Regenerate.
2599 2005-04-11 David Edelsohn <edelsohn@gnu.org>
2601 * tree-ssa-loop-im.c: Include real.h.
2602 (determine_invariantness_stmt): If real division divisor is
2603 invariant and flag_unsafe_math_optimizations enabled, generate
2604 invariant reciprocal for hoisting.
2605 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
2607 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
2609 Fix PR tree-optimization/20926
2611 * tree-ssa-alias.c (add_type_alias): Handle subvars.
2613 2005-04-11 Devang Patel <dpatel@apple.com>
2615 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
2618 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
2620 * fold-const.c (fold_binary_op_with_conditional_arg):
2621 use fold_buildN instead of "fold (buildN" in some
2623 (fold_unary): Likewise.
2624 (fold_binary): Likewise.
2626 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
2628 Fix PR tree-optimization/20612
2629 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
2631 (perfect_nestify): preheaderbb is *not* part of loop of the
2634 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
2636 * tree-ssa-alias.c (may_alias_p): If the variable
2637 is a global variable and the pointer is parameter
2638 and -fargument-noalias-global is used, then
2639 the pointer cannot alias the variable.
2641 2005-04-11 James A. Morrison <phython@gcc.gnu.org>
2643 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
2644 * config/sparc/sparc.h: Likewise.
2645 * config/sparc/sparc.md: Likewise.
2647 2005-04-11 Kazu Hirata <kazu@cs.umass.edu>
2649 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
2651 * tree-vrp.c: Fix a comment typo.
2653 2005-04-11 Diego Novillo <dnovillo@redhat.com>
2655 PR tree-optimization/20920
2656 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
2657 SSA_NAME flows through an abnormal edge.
2658 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
2659 through abnormal edges.
2660 (maybe_add_assert_expr): Likewise.
2662 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
2664 * config/s390/s390.h (s390_tune_string, s390_arch_string)
2665 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
2666 (s390_stack_size_string, s390_stack_guard_string, target_flags)
2667 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
2668 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
2669 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
2670 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
2671 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
2672 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
2673 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
2674 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2675 (TARGET_HANDLE_OPTION): Likewise.
2676 (s390_tune): Initialize to PROCESSOR_max.
2677 (s390_arch_string): Make static.
2678 (s390_tune_string, s390_warn_framesize_string): Delete.
2679 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
2680 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
2681 (s390_handle_arch_option, s390_handle_option): New functions.
2682 (override_options): Remove parsing of option strings.
2683 * config/s390/s390.opt: New file.
2685 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
2687 * tree-complex.c (expand_vector_operations): Call
2688 update_stmt_if_modified.
2690 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
2692 * tree-vect-analyze (vect_determine_vectorization_factor):
2693 Do not use GET_MODE_NUNITS.
2694 * tree-vect-transform.c (vect_get_vec_def_for_operand,
2695 (vectorizable_load, vect_transform_loop): Likewise.
2697 2005-04-11 Uros Bizjak <uros@kss-loka.si>
2699 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
2700 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
2701 * optabs.h (enum optab_index): Add new OTI_lceil.
2702 (lceil_optab): Define corresponding macro.
2703 * optabs.c (init_optabs): Initialize lceil_optab.
2704 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
2705 and lceildi2 patterns.
2706 * builtins.c (expand_builtin_int_roundingfn): Handle
2707 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
2708 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
2709 BUILT_IN_LLCEIL{,F,L}.
2710 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
2711 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
2712 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
2713 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
2714 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
2715 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
2716 into lceil built-in function and (long long int)ceil{,f,l} into
2717 llceil built-in function.
2718 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
2721 2005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2723 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
2726 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
2728 * config/arm/arm.c: Fix a comment typo.
2729 * doc/tree-ssa.texi: Fix a typo.
2731 2005-04-10 Steven Bosscher <stevenb@suse.de>
2733 * cselib.c (clear_table): Rename to cselib_clear_table.
2734 * cselib.h (cselib_clear_table): Add prototype.
2735 * gcse.c (gcse_main): Make 'f' argument unused.
2736 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
2737 of each basic block instead.
2738 (compute_sets, compute_hash_table_work): Likewise.
2739 (constprop_register): Change int 'alter_jumps' argument to bool.
2740 (do_local_cprop): Likewise.
2741 (local_cprop_pass): Likewise. Also walk basic blocks instead of
2742 the insn chain. Explicitly clear the cselib tables after finishing
2743 one basic block. Make sure there are no unterminated libcall blocks.
2744 Update compute_sets call.
2745 (cprop): Walk basic blocks instead of the insn chain.
2746 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
2748 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
2749 one_cprop_pass calls.
2751 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
2753 * combine.c (combine_simplify_rtx): Remove a transformation that
2754 relies on an invalid assumption about rtl sign-extension semantics.
2756 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
2758 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
2759 to build_int_cst_wide.
2761 2005-04-09 Alexandre Oliva <aoliva@redhat.com>
2764 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
2765 set the original address pseudo to the correct value before the
2766 original insn, if possible, and leave the insn alone, otherwise
2767 create a new pseudo, set it and replace it in the insn.
2768 * recog.c (validate_change_maybe_volatile): New.
2769 * recog.h (validate_change_maybe_volatile): Declare.
2771 2005-04-09 Caroline Tice <ctice@apple.com>
2773 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2774 Remove targetm.have_named_sections test.
2775 (fix_edges_for_rarely_executed_code): Likewise.
2776 (insert_section_boundary_note): Likewise.
2777 (reorder_basic_blocks): Check partitioning flag before calling
2778 verify_hot_cold_block_grouping.
2779 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2780 the function struct rather than global variables.
2781 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2782 (COLD_END_LABEL): Likewise
2783 (cold_text_section_label): New static global variable.
2784 (cold_end_label): Likewise.
2785 (dwarf2out_switch_text_section): Get hot/cold section labels from
2786 the function struct rather than global variables.
2787 (output_aranges): Use cold_text_section_label and cold_end_label;
2788 check partitioning flag before putting out delta.
2789 (output_ranges): Remove incorrect code attempting to use
2791 (output_line_info): Get cold section label from function struct.
2792 (add_location_or_const_value_attribute): Likewise.
2793 (get_subprogram_die): Get hot/cold section labels from function struct.
2794 (dwarf2out_var_location): Likewise.
2795 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2796 write out cold_text_section_label if partition flag is set.
2797 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2798 * function.h (struct function): Add new fields to point to hot/cold
2799 section labels: hot_section_label, cold_section_label,
2800 hot_section_end_label and cold_section_end_label; also add new field
2801 for cold text section name, unlikely_text_section_name.
2802 * opts.c (decode_options): Turn off partitioning flag if
2803 !targetm.have_named_sections.
2804 * output.h (hot_section_label): Remove.
2805 (hot_section_end_label): Remove.
2806 (cold_section_end_label): Remove.
2807 (unlikely_section_label): Remove.
2808 (unlikely_text_section_name): Remove.
2809 * passes.c (rest_of_handle_final): Remove code that frees
2810 unlikely_text_section_name.
2811 * varasm.c (unlikely_section_label): Remove.
2812 (hot_section_label): Remove.
2813 (hot_section_end_label): Remove.
2814 (cold_section_end_label): Remove.
2815 (unlikely_text_section_name): Remove.
2816 (initialize_cold_section_name): Modify to call
2817 targetm.strip_name_encoding; to store cold section name in current
2818 function struct, if it exists; and to only use the decl_section_name
2819 if flag_named_sections is true.
2820 (unlikely_text_section): Modify to get section name out of current
2821 function struct, if there is one; otherwise build it from
2822 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2823 (in_unlikely_text_section): Likewise.
2824 (named_section): Modify to get/put cold section name in current function
2825 struct, if there is one.
2826 (function_section): Change 'bool unlikely' to 'int reloc'; check
2827 targetm.have_named_sections before calling named_section.
2828 (current_function_section): Likewise.
2829 (assemble_start_function): Modify to get/put unlikely_text_section_name
2830 in current function struct; modify to get hot/cold section labels
2831 from function struct; initialize labels using
2832 ASM_GENERATE_INTERNAL_LABEL;
2833 test partitioning flag before writing out hot section label.
2834 (assemble_end_function): Test partitioning flag before writing out
2835 hot/cold section labels.
2836 (default_section_type_flags_1): Modify to use array instead of
2837 char* for unlikely_text_section_name; set flags correctly for
2838 cold text section if there is not a current function decl.
2840 2005-04-09 Jakub Jelinek <jakub@redhat.com>
2842 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2843 and TI_VA_LIST_FPR_COUNTER_FIELD.
2844 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2845 * tree-pass.h (pass_stdarg): Add.
2846 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2847 * tree-stdarg.c: New file.
2848 * tree-stdarg.h: New file.
2849 * Makefile.in (OBJS-common): Add tree-stdarg.o.
2850 (tree-stdarg.o): Add dependencies.
2851 * function.h (struct function): Add va_list_gpr_size and
2852 va_list_fpr_size fields.
2853 * function.c (allocate_struct_function): Initialize them.
2854 * target.h (struct gcc_target): Add stdarg_optimize_hook.
2855 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2856 (TARGET_INITIALIZER): Add it.
2858 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2859 va_list_{g,f}pr_counter_field.
2860 (ix86_setup_incoming_varargs): Don't do anything if reg_save
2861 area will not be used. Only save registers that tree-stdarg.c
2862 detected they need saving.
2863 (ix86_va_start): Don't set up fields that won't be used.
2865 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2866 va_list_{g,f}pr_counter_field.
2867 (setup_incoming_varargs): Don't do anything if reg_save
2868 area will not be used. Only save registers that tree-stdarg.c
2869 detected they need saving.
2870 (rs6000_va_start): Don't set up fields that won't be used.
2872 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
2873 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
2874 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
2875 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2877 2005-04-09 Jakub Jelinek <jakub@redhat.com>
2880 * config/i386/i386.c (construct_container): Pass empty aligned
2881 struct, union or class in memory.
2883 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
2885 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
2886 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
2887 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
2888 config/rs6000/predicates.md: Fix comment typos.
2890 * sched-int.h (haifa_insn_data): Remove blockage and units.
2891 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
2892 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
2893 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
2895 2005-04-09 Jan Hubicka <jh@suse.cz>
2896 Steven Bosscher <stevenb@suse.de>
2898 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
2899 * cfgloop.c (get_loop_exit_edges): Likewise.
2900 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
2902 * loop-unroll.c (analyze_insns_in_loop): Likewise.
2903 * tree-cfg.c (dump_cfg_status): Likewise.
2905 2005-04-09 David Edelsohn <edelsohn@gnu.org>
2907 * config/rs6000/predicates.md (altivec_register_operand): Remove
2908 redundant match_code test.
2909 (gpc_reg_operand): Same.
2910 (cc_reg_operand): Same.
2911 (cc_reg_not_cr0_operand): Same.
2913 2005-04-09 Jan Hubicka <jh@suse.cz>
2915 Forgotten hunk from my last merge patch:
2916 * final.c (output_addr_const): Do not call mark_referenced.
2918 2005-04-09 Andrew MacLeod <amacleod@redhat.com>
2920 * doc/tree-ssa.texi: Add immediate use documentation.
2922 2005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
2924 * arm.c (FL_WBUF): Define.
2925 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
2926 (arm_is_6_or_7): Delete.
2927 (arm_tune_wbuf): New.
2928 (arm_override_options): Set arm_tune_wbuf.
2929 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
2930 (arm_is_6_or_7): Delete declaration.
2931 (arm_tune_wbuf): New declartion.
2932 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
2933 (model_wbuf): Derive from arm_tune_wbuf.
2934 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
2935 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
2936 (arm740t): Mark CPUs as having a write buffer.
2938 2005-04-09 Uros Bizjak <uros@kss-loka.si>
2940 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
2941 of 'const_double_operand' in operand 2 constraints. Update enable
2944 2005-04-09 Uros Bizjak <uros@kss-loka.si>
2946 * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
2947 (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
2948 * optabs.h (enum optab_index): Add new OTI_lfloor.
2949 (lfloor_optab): Define corresponding macro.
2950 * optabs.c (init_optabs): Initialize lfloor_optab.
2951 * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
2952 and lfloordi2 patterns.
2953 * builtins.c (expand_builtin_int_roundingfn): New prototype.
2954 (expand_builtin_int_roundingfn): New function.
2955 (fold_builtin_int_roundingfn): New prototype.
2956 (fold_builtin_int_roundingfn): New function, renamed from
2957 fold_builtin_lround.
2958 Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
2959 BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
2960 (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
2961 BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
2962 (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
2963 (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
2964 BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
2965 * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
2966 into lfloor built-in function and (long long int)floor{,f,l} into
2967 llfloor built-in function.
2968 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
2971 2005-04-08 Ian Lance Taylor <ian@airs.com>
2973 * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2974 CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
2975 * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
2976 (DO_COND, DO_BODY): Likewise.
2977 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
2978 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
2979 (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
2980 BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
2981 (build_continue_stmt, build_break_stmt): Don't declare.
2982 (c_do_switch_warnings): Update declaration.
2983 * c-gimplify.c (enum bc_t): Remove.
2984 (struct c_gimplify_ctx, ctxp): Remove.
2985 (push_context, pop_context): Remove static functions.
2986 (c_genericize): Don't call push_context or pop_context.
2987 (begin_bc_block, finish_bc_block): Remove static functions.
2988 (build_bc_goto): Likewise.
2989 (gimplify_c_loop): Likewise.
2990 (gimplify_for_stmt, gimplify_while_stmt): Likewise.
2991 (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
2992 (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
2993 DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2994 * c-common.c (c_do_switch_warnings): Rename from
2995 c_do_switch_warnings_1.
2996 (c_do_switch_warnings) [old version]: Remove.
2997 (c_do_switch_expr_warnings): Remove.
2998 * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
2999 function instead of c_do_switch_expr_warnings.
3000 * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
3001 CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
3002 * c-pretty-print.c (pp_c_statement): Likewise.
3003 * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
3005 2005-04-08 Devang Patel <dpatel@apple.com>
3007 * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
3008 While selecting replacement condition pay attention to loop header.
3010 2005-04-08 Diego Novillo <dnovillo@redhat.com>
3012 Merge from tree-cleanup-branch: VRP, store CCP, store
3013 copy-prop, incremental SSA updating of FUD chains and
3014 newly exposed symbols.
3016 * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
3017 (OBJS-common): Add tree-vrp.o.
3018 (tree-vrp.o): New rule.
3019 * basic-block.h (nearest_common_dominator_for_set): Declare.
3020 * common.opt (ftree-store-ccp): New flag.
3021 (ftree-copy-prop): New flag.
3022 (ftree-vrp): New flag.
3023 (ftree-store-copy-prop): New flag.
3024 * dominance.c (nearest_common_dominator_for_set): New.
3025 * domwalk.c (walk_dominator_tree): Only traverse
3026 statements in blocks marked in walk_data->interesting_blocks.
3027 * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
3028 * fold-const.c (fold): Handle ASSERT_EXPR.
3029 * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
3030 Set flag_tree_store_ccp, flag_tree_store_copy_prop and
3031 flag_tree_vrp at -O2.
3032 * timevar.def (TV_TREE_VRP): Define.
3033 (TV_TREE_COPY_PROP): Define.
3034 (TV_TREE_STORE_COPY_PROP): Define.
3035 (TV_TREE_SSA_INCREMENTAL): Define.
3036 (TV_TREE_STORE_CCP): Define.
3037 * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
3038 to kill_redundant_phi_nodes from comment.
3039 (verify_expr): Handle ASSERT_EXPR.
3040 * tree-dfa.c (mark_new_vars_to_rename): Remove second
3041 argument. Update all users.
3042 (mark_call_clobbered_vars_to_rename): Remove. Update all
3044 * tree-flow-inline.h (unmodifiable_var_p): New.
3045 * tree-flow.h (enum value_range_type): Declare.
3046 (struct value_range_def): Declare.
3047 (value_range): Declare.
3048 (remove_all_phi_nodes_for): Remove. Update all users.
3049 (find_phi_node_for): Declare.
3050 (add_type_alias): Declare.
3051 (count_uses_and_derefs): Declare.
3052 (kill_redundant_phi_nodes): Remove.
3053 (rewrite_into_ssa): Remove.
3054 (rewrite_def_def_chains): Remove.
3055 (update_ssa, register_new_name_mapping, create_new_def_for,
3056 need_ssa_update_p, name_registered_for_update_p,
3057 release_ssa_name_after_update_ssa, dump_repl_tbl,
3058 debug_repl_tbl, dump_names_replaced_by,
3059 debug_names_replaced_by, mark_sym_for_renaming,
3060 mark_set_for_renaming, get_current_def, set_current_def,
3061 get_value_range, dump_value_range, debug_value_range,
3062 dump_all_value_ranges, debug_all_value_ranges,
3063 expr_computes_nonzero, loop_depth_of_name,
3064 unmodifiable_var_p): Declare.
3065 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
3067 * tree-into-ssa.c (block_defs_stack): Update comment.
3068 (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
3069 syms_to_rename, names_to_release, repl_tbl,
3070 need_to_initialize_update_ssa_p, need_to_update_vops_p,
3071 need_to_replace_names_p): New locals.
3072 (NAME_SETS_GROWTH_FACTOR): Define.
3073 (struct repl_map_d): Declare.
3074 (struct mark_def_sites_global_data): Add field
3076 (enum rewrite_mode): Declare.
3077 (REGISTER_DEFS_IN_THIS_STMT): Define.
3078 (compute_global_livein): Use last_basic_block instead of
3080 (set_def_block): Remove last argument. Update all callers.
3081 (prepare_use_operand_for_rename): Remove. Update all callers.
3082 (prepare_def_operand_for_rename): Remove. Update all callers.
3083 (symbol_marked_for_renaming): New.
3086 (repl_map_hash): New.
3088 (repl_map_free): New.
3089 (names_replaced_by): New.
3090 (add_to_repl_tbl): New.
3091 (add_new_name_mapping): New.
3092 (mark_def_sites): Assume that all the operands in the
3093 statement are in normal form.
3094 (find_idf): Assert that the block in the stack is valid.
3095 (get_default_def_for): New.
3096 (insert_phi_nodes_for): Add new argument 'update_p'.
3098 If update_p is true, add a new mapping between the LHS of
3099 each new PHI and the name that it replaces.
3100 (insert_phi_nodes_1): Only call find_idf if needed.
3101 (get_reaching_def): Call get_default_def_for.
3102 (rewrite_operand): Remove.
3103 (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
3104 and REWRITE_THIS_STMT are false.
3105 Assume that all the operands in the statement are in
3107 (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
3108 (rewrite_virtual_phi_arguments): Remove.
3109 (invalidate_name_tags): Remove.
3110 (register_new_update_single, register_new_update_set,
3111 rewrite_update_init_block, replace_use,
3112 rewrite_update_fini_block, rewrite_update_stmt,
3113 rewrite_update_phi_arguments): New.
3114 rewrite_blocks): Remove argument 'fix_virtual_phis'.
3115 Add arguments 'entry', 'what' and 'blocks'.
3116 Initialize the dominator walker according to 'what' and
3118 Start the dominator walk at 'entry'.
3119 (mark_def_site_blocks): Add argument 'interesting_blocks'.
3120 Use it to configure the dominator walker.
3121 (rewrite_into_ssa): Remove argument 'all'.
3123 (rewrite_all_into_ssa): Remove.
3124 (rewrite_def_def_chains): Remove.
3125 (mark_def_interesting, mark_use_interesting,
3126 prepare_phi_args_for_update, prepare_block_for_update,
3127 prepare_def_site_for, prepare_def_sites,
3128 dump_names_replaced_by, debug_names_replaced_by,
3129 dump_repl_tbl, debug_repl_tbl, init_update_ssa,
3130 delete_update_ssa, create_new_def_for,
3131 register_new_name_mapping, mark_sym_for_renaming,
3132 mark_set_for_renaming, need_ssa_update_p,
3133 name_registered_for_update_p, ssa_names_to_replace,
3134 release_ssa_name_after_update_ssa,
3135 insert_updated_phi_nodes_for, update_ssa): New.
3136 * tree-loop-linear.c (linear_transform_loops): Call
3137 update_ssa instead of rewrite_into_ssa.
3138 * tree-optimize.c (vars_to_rename): Remove.
3140 (init_tree_optimization_passes): Replace
3141 pass_redundant_phi with pass_copy_prop.
3143 Replace pass_ccp with pass_store_ccp.
3144 Add pass_store_copy_prop after pass_store_ccp.
3145 (execute_todo): If the TODO_ flags don't include updating
3146 the SSA form, assert that it does not need to be updated.
3147 Call update_ssa instead of rewrite_into_ssa and
3148 rewrite_def_def_chains.
3149 If TODO_verify_loops is set, call verify_loop_closed_ssa.
3150 (tree_rest_of_compilation):
3151 * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
3152 TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
3153 TODO_cleanup_cfg): Renumber.
3154 (TODO_verify_loops, TODO_update_ssa,
3155 TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
3156 TODO_update_ssa_only_virtuals): Define.
3157 (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
3159 * tree-phinodes.c (make_phi_node): Update documentation.
3160 (remove_all_phi_nodes_for): Remove.
3161 (find_phi_node_for): New.
3162 * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
3163 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
3164 (interpret_rhs_modify_expr): Likewise.
3165 * tree-sra.c (decide_instantiations): Mark all symbols in
3166 SRA_CANDIDATES for renaming.
3167 (mark_all_v_defs_1): Rename from mark_all_v_defs.
3168 (mark_all_v_defs): New function. Update all users to call it
3169 with the whole list of scalarized statements, not just the
3171 * tree-ssa-alias.c (count_ptr_derefs): Make extern.
3172 (compute_flow_insensitive_aliasing): If the tag is
3173 unmodifiable and the variable isn't or vice-versa, don't
3174 make them alias of each other.
3175 (setup_pointers_and_addressables): If the type tag for
3176 VAR is about to change, mark the old one for renaming.
3177 (add_type_alias): New.
3178 * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
3179 (ccp_lattice_t): Rename from latticevalue.
3180 (value): Remove. Update all users.
3181 (const_val): New local variable.
3182 (do_store_ccp): New local variable.
3183 (dump_lattice_value): Handle UNINITIALIZED.
3184 (debug_lattice_value): New.
3185 (get_default_value): Re-write.
3186 (set_lattice_value): Re-write.
3187 (def_to_varying): Remove. Update all users.
3188 (likely_value): Return VARYING for statements that make
3189 stores when STORE_CCP is false.
3190 Return VARYING for any statement other than MODIFY_EXPR,
3191 COND_EXPR and SWITCH_EXPR.
3192 (ccp_initialize): Re-write.
3193 (replace_uses_in, replace_vuse_in, substitute_and_fold):
3194 Move to tree-ssa-propagate.c.
3195 (ccp_lattice_meet): Handle memory stores when
3196 DO_STORE_CCP is true.
3197 (ccp_visit_phi_node): Likewise.
3198 (ccp_fold): Likewise.
3199 (evaluate_stmt): Likewise.
3200 (visit_assignment): Likewise.
3201 (ccp_visit_stmt): Likewise.
3202 (execute_ssa_ccp): Add argument 'store_ccp'. Copy it
3206 (do_ssa_store_ccp): New.
3207 (gate_store_ccp): New.
3208 (pass_store_ccp): Declare.
3209 * tree-ssa-copy.c: Include tree-ssa-propagate.h.
3210 (may_propagate_copy): Reformat.
3211 Don't abort if ORIG is a virtual and DEST isn't.
3212 If NEW does not have alias information but DEST does,
3214 (copy_of, cached_last_copy_of, do_store_copy_prop, enum
3215 copy_prop_kind, which_copy_prop): Declare.
3216 (stmt_may_generate_copy, get_copy_of_val,
3217 get_last_copy_of, set_copy_of_val, dump_copy_of,
3218 copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
3219 copy_prop_visit_stmt, copy_prop_visit_phi_node,
3220 init_copy_prop, fini_copy_prop, execute_copy_prop,
3221 gate_copy_prop, do_copy_prop, gate_store_copy_prop,
3222 store_copy_prop): New.
3223 (pass_copy_prop, pass_store_copy_prop): Declare.
3224 * tree-ssa-dom.c (struct opt_stats_d): Add fields
3225 'num_const_prop' and 'num_copy_prop'.
3226 (cprop_operand): Update them.
3227 (dump_dominator_optimization_stats): Dump them.
3228 (tree_ssa_dominator_optimize): Call update_ssa instead of
3230 (loop_depth_of_name): Declare extern.
3231 (simplify_cond_and_lookup_avail_expr): Guard against NULL
3232 values for LOW or HIGH.
3233 (cprop_into_successor_phis): Only propagate if NEW != ORIG.
3234 (record_equivalences_from_stmt): Call expr_computes_nonzero.
3235 (cprop_operand): Only propagate if VAL != OP.
3236 * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
3237 statement for renaming.
3238 * tree-ssa-loop-im.c (move_computations): Call update_ssa.
3239 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
3240 add_type_alias if necessary.
3241 Call mark_new_vars_to_rename.
3242 (tree_ssa_iv_optimize): If new symbols need to be renamed,
3243 mark every statement updated, call update_ssa and
3244 rewrite_into_loop_closed_ssa.
3245 * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
3246 from LIVEIN if VAR is a virtual.
3247 * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
3248 * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
3249 (get_call_expr_operands): Reformat statement.
3250 (add_stmt_operand): Don't create V_MAY_DEFs for read-only
3252 * tree-ssa-propagate.c (ssa_prop_init): Initialize
3253 SSA_NAME_VALUE for every name.
3254 (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3255 get_value_loaded_by): New.
3256 (replace_uses_in, replace_vuses_in, replace_phi_args_in,
3257 substitute_and_fold): Move from tree-ssa-ccp.c.
3258 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
3259 first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3260 get_value_loaded_by, replace_uses_in, substitute_and_fold):
3262 * tree-ssa.c (verify_use): Fix error message.
3263 (propagate_into_addr, replace_immediate_uses, get_eq_name,
3264 check_phi_redundancy, kill_redundant_phi_nodes,
3265 pass_redundant_phi): Remove. Update all users.
3266 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3267 add_type_alias, if necessary.
3268 * tree-vectorizer.h (struct _stmt_vect_info): Update
3269 documentation for field 'memtag'.
3270 * tree-vrp.c: New file.
3271 * tree.def (ASSERT_EXPR): Define.
3272 * tree.h (ASSERT_EXPR_VAR): Define.
3273 (ASSERT_EXPR_COND): Define.
3274 (SSA_NAME_VALUE_RANGE): Define.
3275 (struct tree_ssa_name): Add field 'value_range'.
3276 (PHI_REWRITTEN): Remove.
3277 (struct tree_phi_node): Remove field 'rewritten'.
3278 * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
3279 -ftree-store-copy-prop): Document.
3280 * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
3281 Document usage of update_ssa.
3283 2005-04-08 David Edelsohn <edelsohn@gnu.org>
3286 * config/rs6000/predicates.md (altivec_register_operand): Accept
3288 (and64_operand): Do not limit CONST_INT to mask64_operand.
3289 (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
3290 (and_operand): Do not limit CONST_INT to mask_operand.
3292 2005-04-09 Hans-Peter Nilsson <hp@axis.com>
3294 PR rtl-optimization/20466
3295 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
3296 for overlap of the address of each list member.
3297 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
3299 2005-04-08 Mike Stump <mrs@apple.com>
3301 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
3303 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
3306 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
3308 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
3310 * function.c (push_function_context_to): Don't set
3312 * function.h (function): Remove contains_functions.
3313 (current_function_contains_functions): Remove.
3315 * function.h (function): Remove instrument_entry_exit.
3316 (current_function_instrument_entry_exit): Remove.
3318 * function.h (nonlocal_labels): Remove.
3320 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
3322 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
3323 (check_attr_value, write_attr_get, write_expr_attr_cache,
3324 find_attr, make_internal_attr): Don't reference negative_ok or
3326 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
3327 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
3328 (ATTR_STATIC): Adjust the value.
3330 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
3332 2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
3334 * config/s390/tpf.h (ASM_SPEC): Define.
3336 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
3338 * tree-flow.h: Remove the prototype for
3339 redirect_immediate_uses.
3340 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
3342 2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
3344 * arm.c (arm_const_double_by_parts): New function.
3345 * arm-protos.h (arm_const_double_by_parts): Add prototype.
3346 * arm.md (define_split for 64-bit constants): Add another one.
3348 2005-04-08 Andrew MacLeod <amacleod@redhat.com>
3350 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
3352 2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3354 * system.h: Revert last change.
3356 2005-04-08 Richard Sandiford <rsandifo@redhat.com>
3358 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
3359 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
3360 (TARGET_SWITCHES): Delete.
3361 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3362 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
3363 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
3364 * config/xtensa/xtensa.opt: New file.
3366 2005-04-08 Ben Elliston <bje@au.ibm.com>
3368 * config/fp-bit.c: Include L_mul_tf in #endif comment.
3369 * config/fp-bit.h: Tidy comments.
3371 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3373 * system.h: Poison PARAMS.
3375 2005-04-07 Richard Sandiford <rsandifo@redhat.com>
3377 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3378 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
3379 (TARGET_SWITCHES): Delete.