https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68500
Bug ID: 68500 Summary: Remove in_loop_pipeline usage Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org Target Milestone: --- Consider pass_slp_vectorize::execute ... pass_slp_vectorize::execute (function *fun) { basic_block bb; bool in_loop_pipeline = scev_initialized_p (); if (!in_loop_pipeline) { loop_optimizer_init (LOOPS_NORMAL); scev_initialize (); } ... if (!in_loop_pipeline) { scev_finalize (); loop_optimizer_finalize (); } ... It uses an in_loop_pipeline variable, initialized using scev_initialized_p to detect whether the pass is run in the loop pipeline, to allow different behaviour inside and outside the loop pipeline. We want a cleaner way to allow passes to run correctly inside and outside the loop pipeline.