late-combine relies on df, which for -O0 is only initialised late
(pass_df_initialize_no_opt, after split1). Other df-based passes
cope with this by requiring optimize > 0, so this patch does the
same for late-combine.
gcc/
PR rtl-optimization/115677
* late-combine.cc (pass_late_combine::gate): New function.
// opt_pass methods:
opt_pass *clone () override { return new pass_late_combine (m_ctxt); }
- bool gate (function *) override { return flag_late_combine_instructions; }
+ bool gate (function *) override;
unsigned int execute (function *) override;
};
+bool
+pass_late_combine::gate (function *)
+{
+ return optimize > 0 && flag_late_combine_instructions;
+}
+
unsigned int
pass_late_combine::execute (function *fn)
{