Commit 5c1f5cc7 by Nicolas Capens

Move Nucleus statics to implementation side globals.

Bug swiftshader:10 Change-Id: I69105d8287e52f0f0573c45c59958994a56fc0af Reviewed-on: https://swiftshader-review.googlesource.com/7214Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 4f738a16
......@@ -30,19 +30,12 @@
namespace llvm
{
class Function;
class Module;
class BasicBlock;
class Value;
class Constant;
class ConstantInt;
class ConstantFP;
class Type;
class Argument;
class GlobalVariable;
class GlobalValue;
class ExecutionEngine;
class LLVMContext;
}
namespace sw
......@@ -78,20 +71,14 @@ namespace sw
Routine *acquireRoutine(const wchar_t *name, bool runOptimizations = true);
static void setFunction(llvm::Function *function);
static llvm::Module *getModule();
static llvm::Function *getFunction();
static llvm::LLVMContext *getContext();
static llvm::Value *allocateStackVariable(llvm::Type *type, int arraySize = 0);
static llvm::BasicBlock *createBasicBlock();
static llvm::BasicBlock *getInsertBlock();
static void setInsertBlock(llvm::BasicBlock *basicBlock);
static llvm::BasicBlock *getPredecessor(llvm::BasicBlock *basicBlock);
static llvm::Function *createFunction(llvm::Type *ReturnType, std::vector<llvm::Type*> &Params);
static llvm::Value *getArgument(llvm::Function *function, unsigned int index);
static void createFunction(llvm::Type *ReturnType, std::vector<llvm::Type*> &Params);
static llvm::Value *getArgument(unsigned int index);
// Terminators
static llvm::Value *createRetVoid();
......@@ -134,7 +121,6 @@ namespace sw
static llvm::Value *createTrunc(llvm::Value *V, llvm::Type *destType);
static llvm::Value *createZExt(llvm::Value *V, llvm::Type *destType);
static llvm::Value *createSExt(llvm::Value *V, llvm::Type *destType);
// static llvm::Value *createFPToUI(llvm::Value *V, llvm::Type *destType);
static llvm::Value *createFPToSI(llvm::Value *V, llvm::Type *destType);
static llvm::Value *createUIToFP(llvm::Value *V, llvm::Type *destType);
static llvm::Value *createSIToFP(llvm::Value *V, llvm::Type *destType);
......@@ -216,13 +202,6 @@ namespace sw
private:
void optimize();
static llvm::ExecutionEngine *executionEngine;
static Builder *builder;
static llvm::Function *function;
static llvm::LLVMContext *context;
static llvm::Module *module;
static RoutineManager *routineManager;
static BackoffLock codegenMutex;
};
......@@ -2519,7 +2498,7 @@ namespace sw
template<int index>
Argument<typename ArgI<index, Arguments...>::Type> Arg() const
{
llvm::Value *arg = Nucleus::getArgument(function, index);
llvm::Value *arg = Nucleus::getArgument(index);
return Argument<typename ArgI<index, Arguments...>::Type>(arg);
}
......@@ -2527,7 +2506,6 @@ namespace sw
protected:
Nucleus *core;
llvm::Function *function;
std::vector<llvm::Type*> arguments;
};
......@@ -2988,8 +2966,7 @@ namespace sw
}
}
function = Nucleus::createFunction(Return::getType(), arguments);
Nucleus::setFunction(function);
Nucleus::createFunction(Return::getType(), arguments);
}
template<typename Return, typename... Arguments>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment