Resubmit an earlier patch of mine:

reduce the size of relevant "ghostly" sentinels
by a pointer.

This attempt now makes the compactification dependent
on the configure variable LLVM_COMPACT_SENTINELS
and should not cause any bootstrap failures for
llvm-gcc any more.

Please note that this is not yet the final version,
and (as settled with Chris) I shall take out the
autofoo/cmake portions in the next days.

This will also lose the assertability on sentinel
dereferencing and operator++, but that seems
an acceptable price to pay for the simplified
build logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79938 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Gabor Greif
2009-08-24 21:34:17 +00:00
parent 81fece667e
commit fd7a918e58
7 changed files with 48 additions and 18 deletions

View File

@@ -47,7 +47,7 @@ template<> struct ilist_traits<Instruction>
Instruction *ensureHead(Instruction*) const { return createSentinel(); }
static void noteHead(Instruction*, Instruction*) {}
private:
mutable ilist_node<Instruction> Sentinel;
mutable ILIST_NODE<Instruction> Sentinel;
};
/// This represents a single basic block in LLVM. A basic block is simply a