diff options
Diffstat (limited to 'contrib/llvm/lib/CodeGen/RegAllocBase.h')
-rw-r--r-- | contrib/llvm/lib/CodeGen/RegAllocBase.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/llvm/lib/CodeGen/RegAllocBase.h b/contrib/llvm/lib/CodeGen/RegAllocBase.h index 659b8f5..296ffe8 100644 --- a/contrib/llvm/lib/CodeGen/RegAllocBase.h +++ b/contrib/llvm/lib/CodeGen/RegAllocBase.h @@ -65,6 +65,12 @@ protected: LiveRegMatrix *Matrix; RegisterClassInfo RegClassInfo; + /// Inst which is a def of an original reg and whose defs are already all + /// dead after remat is saved in DeadRemats. The deletion of such inst is + /// postponed till all the allocations are done, so its remat expr is + /// always available for the remat of all the siblings of the original reg. + SmallPtrSet<MachineInstr *, 32> DeadRemats; + RegAllocBase() : TRI(nullptr), MRI(nullptr), VRM(nullptr), LIS(nullptr), Matrix(nullptr) {} @@ -77,6 +83,10 @@ protected: // physical register assignments. void allocatePhysRegs(); + // Include spiller post optimization and removing dead defs left because of + // rematerialization. + virtual void postOptimization(); + // Get a temporary reference to a Spiller instance. virtual Spiller &spiller() = 0; |