Index: src/IceMemory.cpp |
diff --git a/src/IceMemory.cpp b/src/IceMemory.cpp |
index 936a2c820787b4eab4fd967af7aed0b67ccb17ce..57c969ec2860f9ccc03ea077f46cbb1698a8bde4 100644 |
--- a/src/IceMemory.cpp |
+++ b/src/IceMemory.cpp |
@@ -15,6 +15,7 @@ |
#include "IceMemory.h" |
#include "IceCfg.h" |
+#include "IceLiveness.h" |
#include "IceTLS.h" |
#include <cassert> |
@@ -33,4 +34,16 @@ void CfgAllocatorTraits::set_current(const manager_type *Manager) { |
ICE_TLS_SET_FIELD(CfgAllocator, Allocator); |
} |
+ICE_TLS_DEFINE_FIELD(ArenaAllocator *, LivenessAllocatorTraits, |
+ LivenessAllocator); |
+ |
+LivenessAllocatorTraits::allocator_type LivenessAllocatorTraits::current() { |
+ return ICE_TLS_GET_FIELD(LivenessAllocator); |
+} |
+ |
+void LivenessAllocatorTraits::set_current(const manager_type *Manager) { |
+ ArenaAllocator *Allocator = |
+ Manager == nullptr ? nullptr : Manager->getAllocator(); |
+ ICE_TLS_SET_FIELD(LivenessAllocator, Allocator); |
+} |
} // end of namespace Ice |