aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
AgeCommit message (Collapse)AuthorFilesLines
2003-10-17common.opt: Add description of the new -fgcse-las flag.Mostafa Hagog1-14/+86
2003-10-17 Mostafa Hagog <mustafa@il.ibm.com> * common.opt: Add description of the new -fgcse-las flag. * flags.h (flag_gcse_las): Declaration of global flag_gcse_las. * gcse.c (hash_scan_set): Handle the case of store expression and insert the memory expression to the hash table, this way we make it possible to discover redundant loads after stores and remove them. (pre_insert_copy_insn): moved the call to update_ld_motion_stores, to pre_insert_copies, it is not the correct place to call it after adding stores to be in the available expression hash table. (pre_insert_copies): Added the call to update_ld_motion_stores when one or more copies were inserted. * opts.c (common_handle_option): Handle the -fgcse-las flag. * toplev.c (flag_gcse_las): Initialization of flag_gcse_las. * doc/invoke.tex: Document new -fgcse-las flag. From-SVN: r72612
2003-10-05c-pretty-print.c: Fix comment typos.Kazu Hirata1-1/+1
* c-pretty-print.c: Fix comment typos. * c-pretty-print.h: Likewise. * calls.c: Likewise. * cfgloopmanip.c: Likewise. * cgraphunit.c: Likewise. * cppfiles.c: Likewise. * final.c: Likewise. * function.c: Likewise. * gcov-io.h: Likewise. * gcse.c: Likewise. * genoutput.c: Likewise. * loop.c: Likewise. * postreload.c: Likewise. * reg-stack.c: Likewise. * regmove.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * simplify-rtx.c: Likewise. * tree-inline.c: Likewise. * config/m68hc11/m68hc11.h: Likewise. * config/mmix/mmix.c: Likewise. * config/mn10300/mn10300.md: Likewise. * config/sh/sh.h: Likewise. From-SVN: r72118
2003-09-26re PR rtl-optimization/11741 (internal compiler error at gcse.c:5318)Roger Sayle1-22/+48
PR optimization/11741 * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the appropriate set to match that in hash_scan_insn. Fall back to the original copy method, if we can't validate changing insn. (pre_delete): Only delete instructions that have a single_set, instead of aborting when we encounter an PARALLEL insn with more then one SET. * gcc.dg/20030926-1.c: New test case. From-SVN: r71827
2003-09-15gcse.c (remove_reachable_equiv_notes): New.Zdenek Dvorak1-9/+128
* gcse.c (remove_reachable_equiv_notes): New. (replace_store_insn): Call it. Update antic list. (store_killed_in_insn): Take REG_EQUAL notes into account. (build_store_vectors, delete_store): Add parameter to replace_store_insn call. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r71412
2003-09-14re PR rtl-optimization/10914 (unswitch loops does not work on powerpc)Zdenek Dvorak1-4/+6
2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> PR optimization/10914 * expr.h (get_condition, canonicalize_condition): Declaration changed. * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition and canonicalize_condition calls. * gcse.c (fis_get_condition, delete_null_pointer_checks_1, delete_null_pointer_checks): Ditto. * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. (canonicalize_condition, get_condition): Allow to return comparisons of cc mode registers. * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow cc mode registers comparison in condition. From-SVN: r71398
2003-09-06gcse.c (expr_equiv_p): Don't consider anything to be equal to volatile mem.Zdenek Dvorak1-0/+4
* gcse.c (expr_equiv_p): Don't consider anything to be equal to volatile mem. From-SVN: r71140
2003-09-03gcse.c (replace_one_set): New function.Mostafa Hagog1-3/+40
* gcse.c (replace_one_set): New function. (pre_insert_copy_insn): Change the order of copying to make copy propagation discover additional PRE opportunities. From-SVN: r71047
2003-08-26gcse.c (is_too_expensive): New function.Nathan Sidwell1-79/+52
* gcse.c (is_too_expensive): New function. (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it. From-SVN: r70801
2003-08-19builtins.c: Fix comment typos.Kazu Hirata1-2/+2
* builtins.c: Fix comment typos. * c-common.c: Likewise. * c-decl.c: Likewise. * c-pretty-print.c: Likewise. * cfgbuild.c: Likewise. * cfglayout.c: Likewise. * cfgloopanal.c: Likewise. * cgraphunit.c: Likewise. * cppfiles.c: Likewise. * dwarfout.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * haifa-sched.c: Likewise. * pretty-print.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * value-prof.c: Likewise. From-SVN: r70583
2003-08-12* gcse.c (gmalloc): Fix last change.Kaveh R. Ghazi1-1/+1
From-SVN: r70352
2003-08-11gcse.c (gmalloc): Argument is a size_t.Kaveh R. Ghazi1-24/+21
* gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC. (grealloc): Size argument is a size_t. (gcalloc): New function. Use throughout in lieu of gmalloc/memset. From-SVN: r70338
2003-08-05* gcse.c (try_replace_reg): Fix updating of note.Josef Zlomek1-5/+5
From-SVN: r70168
2003-07-30* gcse.c (insert_store): Fix typo in previous patch.Jan Hubicka1-1/+1
From-SVN: r69977
2003-07-30re PR c/10320 (gcc 3.4 gets rid of static inline function that does not get ↵Jan Hubicka1-7/+11
inlined) * gcse.c (insert_store): Ignore fake edges. * c-common.c (flag_vtable_gc): Kill. * c-common.g (flag_vtable_gc): Kill. * c-opts (c_common_handle_option): Kill. * c.opt (fvtable-gc): Kill. * final.c (final_scan_insn): Do not call assemble_vtable_entry. * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill. * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill. * invoke.texi (-ftable-gc): Kill documentation. PR C/10320 * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE just because function body is missing. * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs. * class.c (build_vtable_entry_ref): Kill. (build_vtbl_ref_1): Do not call build_vtable_entry_ref. (build_vfn_ref): Do not call build_vtable_entry_ref. * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill. * cp-tree.h (prepare_assemble_variable): Kill. * cp-decl.c (prepare_assemble_variable): Kill. From-SVN: r69964
2003-07-24re PR rtl-optimization/11631 (zsh miscompilation)Zdenek Dvorak1-0/+1
PR optimization/11631 * gcse.c (store_motion): Connect infinite loops to exit. From-SVN: r69759
2003-07-22alias.c: Fix comment formatting.Kazu Hirata1-1/+1
* alias.c: Fix comment formatting. * c-common.c: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * combine.c: Likewise. * cpplib.c: Likewise. * diagnostic.c: Likewise. * dojump.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * jump.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. From-SVN: r69689
2003-07-19alias.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-64/+57
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c gcse.c genattr.c genattrtab.c genautomata.c genconditions.c genemit.c genextract.c genoutput.c genrecog.c gensupport.c ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c postreload.c prefix.c print-tree.c protoize.c ra-build.c ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c regmove.c regrename.c reload.c reload1.c reorg.c resource.c sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary casts. From-SVN: r69587
2003-07-16gcse.c (gcse_constant_p): COMPARE of the same registers is a constant if...Andrew Pinski1-0/+11
2003-05-02 Andrew Pinski <pinskia@physics.uc.edu> * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant if they are not floating point registers. From-SVN: r69471
2003-07-14re PR rtl-optimization/11440 (gcc-3.3.1 miscompiles c++ code with -O2, ↵Franz Sirl1-3/+6
-fno-gcse cures it) 2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> PR optimization/11440 * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or SIGN_EXTRACT SETs. From-SVN: r69325
2003-07-10gcse.c (load_kills_store, [...]): Keep track of the correct dependency ↵Zdenek Dvorak1-23/+46
function to use. * gcse.c (load_kills_store, find_loads, store_killed_in_insn, store_killed_after, store_killed_before): Keep track of the correct dependency function to use. From-SVN: r69198
2003-07-06gcc.c: Convert prototypes to ISO C90.Andreas Jaeger1-556/+334
* gcc.c: Convert prototypes to ISO C90. * gcc.h: Likewise. * gcov-dump.c: Likewise. * gcov-iov.c: Likewise. * gcse.c: Likewise. * genattrtab.h: Likewise. * ggc.h: Likewise. * global.c: Likewise. * graph.c: Likewise. * graph.h: Likewise. * hosthooks.h: Likewise. * hooks.h: Likewise. * hooks.c: Likewise. * hashtable.h: Likewise. * hashtable.c: Likewise. * haifa-sched.c: Likewise. * integrate.h: Likewise. * integrate.c: Likewise. * input.h: Likewise. * ifcvt.c: Likewise. From-SVN: r68995
2003-07-05bt-load.c: Fix comment typos.Kazu Hirata1-1/+1
* bt-load.c: Fix comment typos. * c-incpath.c: Likewise. * cfg.c: Likewise. * cfgcleanup.c: Likewise. * cfgloop.h: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * diagnostic.h: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * et-forest.c: Likewise. * et-forest.h: Likewise. * expr.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * jump.c: Likewise. * langhooks.h: Likewise. * local-alloc.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * ra-build.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * rtl.def: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * simplify-rtx.c: Likewise. * ssa.c: Likewise. * tracer.c: Likewise. * tree.c: Likewise. From-SVN: r68975
2003-07-03gcse.c: Fix misspelling.Matt Kraai1-1/+1
* gcse.c: Fix misspelling. * line-map.c: Likewise. * config/dsp16xx/dsp16xx.h: Likewise. From-SVN: r68865
2003-07-01basic-block.h: Fix comment typos.Kazu Hirata1-8/+8
* basic-block.h: Fix comment typos. * bb-reorder.c: Likewise. * c-format.c: Likewise. * cfgcleanup.c: Likewise. * cfghooks.h: Likewise. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.h: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * dbxout.c: Likewise. * df.c: Likewise. * df.h: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * et-forest.h: Likewise. * flow.c: Likewise. * fold-const.c: Likewise. * function.h: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * ra-build.c: Likewise. * ra-colorize.c: Likewise. * ra-rewrite.c: Likewise. * ra.h: Likewise. * regmove.c: Likewise. * reload.c: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-vis.c: Likewise. * sreal.c: Likewise. * ssa-ccp.c: Likewise. * ssa.c: Likewise. * toplev.c: Likewise. * tree-inline.c: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. From-SVN: r68770
2003-06-28gcse.c (compute_ld_motion_mems): Use INSN_P instead of its definition.Kazu Hirata1-2/+2
* gcse.c (compute_ld_motion_mems): Use INSN_P instead of its definition. (store_killed_in_insn): Likewise. * print-rtl.c (print_rtx): Likewise. * config/frv/frv.c (frv_final_prescan_insn): Likewise. * config/m68hc11/m68hc11.c (dead_register_here): Likewise. (m68hc11_reassign_regs): Likewise. (m68hc11_reorg): Likewise. From-SVN: r68640
2003-06-27gcse.c (expr_equiv_p): Replace expressions that are known to be 0 with 0.Kazu Hirata1-4/+2
* gcse.c (expr_equiv_p): Replace expressions that are known to be 0 with 0. From-SVN: r68601
2003-06-19* gcse.c (store_killed_in_insn): Fix.Zdenek Dvorak1-2/+1
From-SVN: r68230
2003-06-12gcse.c (fis_get_condition): Make it a global function.Kazu Hirata1-2/+1
* gcse.c (fis_get_condition): Make it a global function. * reload1.c (reload_cse_move2add): Detect implicit sets. * rtl.h: Add a prototype for fis_get_condition. From-SVN: r67814
2003-05-21gcse.c (cprop_jump): Make use of REG_EQUAL notes on both setcc and jump, if ↵Roger Sayle1-15/+49
they exist. * gcse.c (cprop_jump): Make use of REG_EQUAL notes on both setcc and jump, if they exist. If substituted instruction fails to validate, store current effort in a REG_EQUAL note. (cprop_insn): Don't attempt further substitutions if the current instruction has been deleted. (local_cprop_pass): Likewise. * jump.c (redirect_jump): Also update REG_EQUAL note, if one is attached to the jump instruction. (invert_jump): Delete REG_EQUAL note on jump, if one exists. Co-Authored-By: Joern Rennecke <joern.rennecke@superh.com> Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu> From-SVN: r67054
2003-04-25re PR rtl-optimization/8705 ([HP-PA] ICE in emit_move_insn_1, at expr.c:3101)John David Anglin1-0/+9
PR opt/8705 * gcse.c (try_replace_reg): On a successful substitution of a constant into a single set, try to simplify the source of the set. * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a constant source. From-SVN: r66060
2003-04-18gcse.c (compute_ld_motion_mems): For MEM destinations...Hans-Peter Nilsson1-10/+15
* gcse.c (compute_ld_motion_mems): For MEM destinations, only consider those to be movable where the source matches want_to_gcse_p. (update_ld_motion_stores): In comment, refer to compute_ld_motion_mems for validity of replacement. From-SVN: r65766
2003-04-07* gcse.c (replace_store_insn): Use single_set.J"orn Rennecke1-1/+1
From-SVN: r65339
2003-04-05alias.c (find_base_term): Export.Zdenek Dvorak1-16/+14
* alias.c (find_base_term): Export. * rtl.h (find_base_term): Declare. * gcse.c (find_moveable_store): Test for flag_non_call_exceptions instead of flag_exceptions. Move test for parameter passing ... (store_killed_in_insn): ... here. From-SVN: r65272
2003-04-03re PR rtl-optimization/10157 ([Sparc] internal compiler error: in ↵Eric Botcazou1-28/+28
extract_insn, at recog.c:2188) PR optimization/10157 * gcse.c (can_copy_p): Rename it to can_copy. (can_copy_init_p): Remove. (compute_can_copy): Use can_copy instead of can_copy_p. (can_copy_p): New exported function. Call compute_can_copy. (hash_scan_set): Use it. (gcse_main): Don't call compute_can_copy. (bypass_jumps): Don't call compute_can_copy. * rtl.h (can_copy_p): Declare. * loop.c (scan_loop): Don't move the source and add a reg-to-reg copy if the mode doesn't support copy operations. From-SVN: r65210
2003-04-01re PR fortran/9974 (Test g77.f-torture/noncompile/check0.f fails)Roger Sayle1-4/+50
PR fortran/9974 * gcse.c (reg_killed_on_egde): New function to test whether the given reg is overwritten by any instruction queued on an edge. (bypass_block): Ignore substitutions killed on incoming edges. Don't bypass outgoing edges that have queued instructions. * gcc.c-torture/execute/20030401-1.c: New test case. From-SVN: r65148
2003-04-01gcse.c (struct ls_expr): Added pattern_regs field.Zdenek Dvorak1-204/+383
* gcse.c (struct ls_expr): Added pattern_regs field. (ldst_entry): Initialize it. (extract_mentioned_regs, extract_mentioned_regs_helper): New. (store_ops_ok): Use regs precomputed by them. (find_loads, store_killed_in_insn, load_kills_store): Change return type to bool. (store_killed_before, store_killed_after): Take position of register set in account. (reg_set_info): Store position of the setter. (gcse_main): Enable store motion. (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems. (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl sharing. (simple_mem): Enable store motion of non-symbol mems. (regvec): Type changed. (LAST_AVAIL_CHECK_FAILURE): New. (compute_store_table_current_insn): New. (build_store_vectors): Computation of availability and anticipatability moved ... (compute_store_table, find_moveable_store): ... here. (delete_store): Remove senseless comment. (store_motion): Reorganize. From-SVN: r65141
2003-03-31gcse.c (simple_mem): Return false for floating-point accesses if ↵Richard Sandiford1-0/+3
flag_float_store is true. * gcse.c (simple_mem): Return false for floating-point accesses if flag_float_store is true. From-SVN: r65076
2003-03-31gcse.c (gcse_constant_p): New function to identify constants suitable for ↵Roger Sayle1-9/+27
constant propagation... * gcse.c (gcse_constant_p): New function to identify constants suitable for constant propagation, including COMPARE with two integer constant arguments. (hash_scan_set): Use gcse_constant_p. (find_avail_set): Likewise. (cprop_insn): Likewise. (do_local_cprop): Likewise. (find_implicit_sets): Likewise. (find_bypass_set): Likewise. From-SVN: r65075
2003-03-08gcse.c (bypass_block, [...]): Do not create irreducible loops.Zdenek Dvorak1-0/+17
* gcse.c (bypass_block, bypass_conditional_jumps): Do not create irreducible loops. * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible loops info correctly. From-SVN: r63980
2003-02-25* gcse.c (cprop_jump): Revert the 2003-02-23 change.Kazu Hirata1-20/+6
From-SVN: r63420
2003-02-23* gcse.c (cprop_jump): Use the REG_EQUAL note if available.Kazu Hirata1-6/+20
From-SVN: r63332
2003-02-15gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.Richard Henderson1-3/+6
* gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs. (bypass_conditional_jumps): Accept computed_jump_p insns as well. From-SVN: r62945
2003-02-11gcse.c (lookup_set): Remove unused argument PAT.Richard Henderson1-18/+8
* gcse.c (lookup_set): Remove unused argument PAT. Update both callers. From-SVN: r62759
2003-02-07gcse.c (local_cprop_find_used_regs): New.Richard Henderson1-2/+50
* gcse.c (local_cprop_find_used_regs): New. (local_cprop_pass): Use it. From-SVN: r62555
2003-02-07gcse.c (implicit_sets): New.Roger Sayle1-1/+131
* gcse.c (implicit_sets): New. (compute_hash_table_work): Include them in hash table. (find_implicit_sets, fis_get_condition): New. (one_cprop_pass): Allocate and free implicit_sets; call find_implicit_sets before building hash table. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r62533
2003-01-27* gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.Josef Zlomek1-0/+1
From-SVN: r61884
2003-01-25gcse.c (bypass_last_basic_block): New global variable.Roger Sayle1-5/+22
* gcse.c (bypass_last_basic_block): New global variable. (bypass_block): Use redirect_edge_and_branch_force to redirect fall-through edges. Use bypass_last_basic_block to determine which blocks have valid PRE information. (bypass_conditional_jumps): Initialize bypass_last_basic_block. From-SVN: r61800
2003-01-25* gcse.c (local_cprop_pass): Update reg_sets table when needed.Jan Hubicka1-1/+6
From-SVN: r61799
2003-01-25re PR rtl-optimization/8492 (GCC spins forever compiling loop)Jan Hubicka1-1/+11
PR opt/8492 * gcse.c (one_cprop_pass): Delete unreachable blocks. Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr> From-SVN: r61798
2003-01-23re PR rtl-optimization/8423 (CSE1 not propagating __builtin_constant_p enough)Roger Sayle1-2/+5
PR optimization/8423 * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when its argument is constant, or 0 if !flag_gcse. * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1 if it's argument is constant. * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes. (hash_scan_set): Don't record CONSTANT_P_RTX expressions. (do_local_cprop): Don't propagate CONSTANT_P_RTX constants. * builtins.c (purge_builtin_constant_p): New function to force instantiation of any remaining CONSTANT_P_RTX nodes. * rtl.h (purge_builtin_constant_p): Prototype here. * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p pass after GCSE and before loop. (flag_gcse): No longer static. * flags.h (flag_gcse): Prototype here. From-SVN: r61642