LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many
authorJeffrey Yasskin <jyasskin@google.com>
Tue, 26 May 2009 18:27:15 +0000 (18:27 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Tue, 26 May 2009 18:27:15 +0000 (18:27 +0000)
commit493a3d015cbb2bcc18d9293a4dec3b35c7493818
tree0ba9a0617346b05c385d9490ac306a9b21e57d64
parent91bb61a1e2c96f727726c2fe7962df3e18ef5416
LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many
entries as there are basic blocks in the function.  LiveVariables::getVarInfo
creates a VarInfo struct for every register in the function, leading to
quadratic space use.  This patch changes the BitVector to a SparseBitVector,
which doesn't help the worst-case memory use but does reduce the actual use in
very long functions with short-lived variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72426 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/LiveVariables.h
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/LiveVariables.cpp
lib/CodeGen/PHIElimination.cpp