------- Comment #3 from hjl dot tools at gmail dot com 2010-09-11 13:49 -------
(In reply to comment #2)
> GCC snapshot has regressed compared to gcc-4.5:
>
> #include <assert.h>
> #include <stdint.h>
>
> #define LIKELY(x) __builtin_expect(!!(x), 1)
> #define UNLIKELY(x) __builtin_expect(!!(x), 0)
>
> register uint32_t *Iptr __asm__("rbp");
>
> typedef void (*inst_t)(uint64_t types, uint64_t a, uint64_t b);
>
> __attribute__ ((noinline)) void dec_helper(uint64_t types, uint64_t a,
> uint64_t
> b) {
> assert("FIXME"=="");
> }
>
> void dec(uint64_t types, uint64_t a, uint64_t b) {
> if (LIKELY((types & 0xFF) == 1)) {
> uint32_t next = Iptr[1];
> --a;
> ++Iptr;
> ((inst_t) (uint64_t) next)(types, a, b);
> } else dec_helper(types, a, b);
> }
This is caused by revision 160124:
http://gcc.gnu.org/ml/gcc-cvs/2010-06/msg00036.html
--
hjl dot tools at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44281