This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 14 Nov 2010 16:16:47 +0000
- Subject: [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
- Auto-submitted: auto-generated
- References: <bug-40436-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #44 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-14 16:16:35 UTC ---
OK, ialloc is because 4.3 folds:
oldbit_430 = 0;
D.12699_431 = oldbit_430 & 1;
D.12698_462 = D.12699_431;
D.12095_241 = D.12698_462;
if (D.12095_241 != 0)
goto <bb 71>;
else
goto <bb 72>;
In mainline the same sequence misses oldbit_430 = 0.
static __inline__ int
test_and_set_bit_simple(unsigned long nr, volatile void * addr)
{
unsigned long reg1, reg2;
int oldbit;
return oldbit & 1;
}
static __inline__ int
test_and_clear_bit_simple(unsigned long nr, volatile void * addr)
{
unsigned long reg1, reg2;
int oldbit;
return oldbit & 1;
}
static __inline__ int
test_and_change_bit_simple(unsigned long nr, volatile void * addr)
{
unsigned long reg1, reg2;
int oldbit;
return oldbit & 1;
}
So another source code bug.
Richard, do you remember if we dropped initialization by zero for uninitialized
vars?
I am officially declaring kernel part of CSiBE irrelevant and will look at the
other tests.
Honza