Doing -fdump-rtl-all at -O0 on a non-x86 target yields a .split2 file which is
mightily confusing since nothing is split, so you can easily burn a dozen of
minutes trying to pinpoint the first split point after reload...
Tested on x86-64/Linux and SPARC/Solaris, applied on the mainline.
2016-09-16 Eric Botcazou <ebotca...@adacore.com>
* recog.c (rest_of_handle_split_after_reload): Delete.
(pass_split_after_reload::gate): New method.
(pass_split_after_reload::execute): Call split_all_insns directly.
--
Eric Botcazou
Index: recog.c
===================================================================
--- recog.c (revision 240142)
+++ recog.c (working copy)
@@ -3901,17 +3901,6 @@ make_pass_split_all_insns (gcc::context
return new pass_split_all_insns (ctxt);
}
-static unsigned int
-rest_of_handle_split_after_reload (void)
-{
- /* If optimizing, then go ahead and split insns now. */
-#ifndef STACK_REGS
- if (optimize > 0)
-#endif
- split_all_insns ();
- return 0;
-}
-
namespace {
const pass_data pass_data_split_after_reload =
@@ -3935,9 +3924,23 @@ public:
{}
/* opt_pass methods: */
+ virtual bool gate (function *)
+ {
+ /* If optimizing, then go ahead and split insns now. */
+ if (optimize > 0)
+ return true;
+
+#ifdef STACK_REGS
+ return true;
+#else
+ return false;
+#endif
+ }
+
virtual unsigned int execute (function *)
{
- return rest_of_handle_split_after_reload ();
+ split_all_insns ();
+ return 0;
}
}; // class pass_split_after_reload