This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/13379] [tree-ssa] miscompiles 2.6.0-test11 Linux kernel
- From: "mingo at elte dot hu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Jan 2004 15:19:43 -0000
- Subject: [Bug optimization/13379] [tree-ssa] miscompiles 2.6.0-test11 Linux kernel
- References: <20031210200045.13379.mingo@elte.hu>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From mingo at elte dot hu 2004-01-30 15:19 -------
for details please see the attached files i just posted.
i happen to be the author of most of the code in bootmem.c - it really does
nothing weird or unexpected. It just uses a big flat bitmap to do
page-granularity allocation at boot-time - with some additional
track-last-partially-allocated-page code to not waste too much RAM on small,
continuous allocations. (it also has multiple flat bitmaps when there are NUMA
nodes, but that code is essentially turned off on x86, where the failure
happens. On x86 we have only a single node, and thus a single bootmem bitmap.)
The hang is caused by an assert triggering in the last few lines of
__alloc_bootmem_core() [provably this is the only miscompiled function in this
module], the last BUG() hits [the bitmap has already been set] - which most
likely indicates that the bitmap arithmetics are off somewhere.
this code never triggered compiler problems before.
it is near 100% sure that the miscompilation is in __alloc_bootmem_core() itself
- the assert can only be caused by incorrect code in that function, it does not
assume anything about the bitmap or other external state.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13379