Index: src/IceGlobalContext.cpp |
diff --git a/src/IceGlobalContext.cpp b/src/IceGlobalContext.cpp |
index c8b429fc4b1b4c3d0a88fcf6a4534b82b8226f29..d017ffb5e53b8a18aafa8f371d12888895fce1b5 100644 |
--- a/src/IceGlobalContext.cpp |
+++ b/src/IceGlobalContext.cpp |
@@ -12,6 +12,8 @@ |
// |
//===----------------------------------------------------------------------===// |
+#include "llvm/ADT/STLExtras.h" |
+ |
#include <ctype.h> // isdigit(), isupper() |
#include <locale> // locale |
@@ -19,6 +21,7 @@ |
#include "IceClFlags.h" |
#include "IceDefs.h" |
#include "IceGlobalContext.h" |
+#include "IceGlobalInits.h" |
#include "IceOperand.h" |
#include "IceTargetLowering.h" |
#include "IceTimerTree.h" |
@@ -289,7 +292,9 @@ IceString GlobalContext::mangleName(const IceString &Name) const { |
return getTestPrefix() + Name; |
} |
-GlobalContext::~GlobalContext() {} |
+GlobalContext::~GlobalContext() { |
+ llvm::DeleteContainerPointers(GlobalDeclarations); |
+} |
Constant *GlobalContext::getConstantInt64(Type Ty, uint64_t ConstantInt64) { |
assert(Ty == IceType_i64); |
@@ -385,6 +390,23 @@ ConstantList GlobalContext::getConstantPool(Type Ty) const { |
llvm_unreachable("Unknown type"); |
} |
+FunctionDeclaration * |
+GlobalContext::newFunctionDeclaration(const FuncSigType *Signature, |
+ unsigned CallingConv, unsigned Linkage, |
+ bool IsProto) { |
+ FunctionDeclaration *Func = new FunctionDeclaration( |
jvoung (off chromium)
2014/10/10 23:01:16
This could potentially use: new (allocate<Function
Karl
2014/10/13 17:43:02
The goal is to eventually move to a memory pool an
|
+ *Signature, static_cast<llvm::CallingConv::ID>(CallingConv), |
+ static_cast<llvm::GlobalValue::LinkageTypes>(Linkage), IsProto); |
+ GlobalDeclarations.push_back(Func); |
+ return Func; |
+} |
+ |
+VariableDeclaration *GlobalContext::newVariableDeclaration() { |
+ VariableDeclaration *Var = new VariableDeclaration(); |
+ GlobalDeclarations.push_back(Var); |
+ return Var; |
+} |
+ |
TimerIdT GlobalContext::getTimerID(TimerStackIdT StackID, |
const IceString &Name) { |
assert(StackID < Timers.size()); |