This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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: [v3] conditional tweak


Martin Sebor wrote:

...
The .s files are attached for those who don't have access to an IA64
machine.

Martin

int foo (int n)


Oops, the code I used actually looked like this:


#if !defined (__GNUC__) || !defined (HINT)
#  define __builtin_expect(e, v)   e
#endif

int foo (int n) {

#ifdef NEG

if (__builtin_expect (n < 2, false)) {

#if defined __HP_aCC && defined HINT
#  pragma ESTIMATED_FREQUENCY 0
#endif

        return 1;
    }

return n * foo (n - 1);

#else

if (__builtin_expect (n > 1, true)) {

#if defined __HP_aCC && defined HINT
#  pragma ESTIMATED_FREQUENCY 0
#endif

        return n * foo (n - 1);
    }

return 1;

#endif

}


P.S. The commands used to generate the attached .s files are here:


$    aCC -S +O3 t.cpp -DHINT -DNEG && mv t.s acc.hint.neg.s \
  && aCC -S +O3 t.cpp -DHINT && mv t.s acc.hint.s \
  && aCC -S +O3 t.cpp -DNEG && mv t.s acc.neg.s \
  && aCC -S +O3 t.cpp && mv t.s acc.s

$    gcc -S -O3 t.cpp -DHINT -DNEG -o gcc.hint.neg.s \
  && gcc -S -O3 t.cpp -DHINT -o gcc.hint.s \
  && gcc -S -O3 t.cpp -DNEG -o gcc.neg.s \
  && gcc -S -O3 t.cpp -o gcc.s




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