This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -fno-tree-cselim not working?


On 25/10, Andrew Pinski wrote:

| On 10/25/07, Samuel Tardieu <sam@rfc1149.net> wrote:
| > With yesterday's SVN sources, the following source produces the same
| > result with -ftree-cselim and -fno-tree-cselim on x86:
| 
| Because another patch does this optimization, the RTL if conversion
| pass which implements conditional moves.

Is there any way to turn it off (other than using -O0) (see current
thread-safeness discussion)?

It looks like this particular optimization is duplicated, as the comment
in tree-ssa-phiopt.c exactly describes what happens here:

/* This pass tries to transform conditional stores into unconditional
   ones, enabling further simplifications with the simpler then and else
   blocks.  In particular it replaces this:

     bb0:
       if (cond) goto bb2; else goto bb1;
     bb1:
       *p = RHS
     bb2:

   with

     bb0:
       if (cond) goto bb1; else goto bb2;
     bb1:
       condtmp' = *p;
     bb2:
       condtmp = PHI <RHS, condtmp'>
       *p = condtmp

   This transformation can only be done under several constraints,
   documented below.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]