http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56309



--- Comment #18 from Uros Bizjak <ubizjak at gmail dot com> 2013-02-14 18:23:12 
UTC ---

Following patch is a big hammer approach to the problem, intended only for

benchmarking



--cut here--

Index: common/config/i386/i386-common.c

===================================================================

--- common/config/i386/i386-common.c    (revision 195988)

+++ common/config/i386/i386-common.c    (working copy)

@@ -710,6 +710,8 @@

     /* Turn off -fschedule-insns by default.  It tends to make the

        problem with not enough registers even worse.  */

     { OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 },

+    /* Turn off -ftree-loop-if-convert by default.  */

+    { OPT_LEVELS_ALL, OPT_ftree_loop_if_convert, NULL, 0 },



 #ifdef SUBTARGET_OPTIMIZATION_OPTIONS

     SUBTARGET_OPTIMIZATION_OPTIONS,

--cut here--



OTOH, it looks that on x86, the only problematic insns are scalar integer cmov

instructions. With some (machine dependant ?) pass inserted at the right spot

in the sequence of passes, appropriate cmovs can be decomposed back to jumps,

for some yet unknown definition of "appropriate".

Reply via email to