[DRIVER] LLVM driver fixup (#482)

Current way of doing things is probably not super thread safe. init is shared between threads and some threads my not call the LLVMInitialize* function.
This commit is contained in:
Philippe Tillet
2022-03-23 00:24:45 -07:00
committed by GitHub
parent a4f68165cd
commit ea6d1f1b85

View File

@@ -70,18 +70,14 @@ namespace triton{
namespace driver{
void init_llvm() {
static bool init = false;
if(!init){
LLVMInitializeNVPTXTargetInfo();
LLVMInitializeNVPTXTarget();
LLVMInitializeNVPTXTargetMC();
LLVMInitializeNVPTXAsmPrinter();
LLVMInitializeAMDGPUTargetInfo();
LLVMInitializeAMDGPUTarget();
LLVMInitializeAMDGPUTargetMC();
LLVMInitializeAMDGPUAsmPrinter();
init = true;
}
LLVMInitializeNVPTXTargetInfo();
LLVMInitializeNVPTXTarget();
LLVMInitializeNVPTXTargetMC();
LLVMInitializeNVPTXAsmPrinter();
LLVMInitializeAMDGPUTargetInfo();
LLVMInitializeAMDGPUTarget();
LLVMInitializeAMDGPUTargetMC();
LLVMInitializeAMDGPUAsmPrinter();
}
@@ -169,8 +165,6 @@ std::string llir_to_ptx(llvm::Module* module, int cc, int version){
// verify and store llvm
llvm::legacy::PassManager pm;
pm.add(llvm::createVerifierPass());
// pm.add(llvm::createDeadCodeEliminationPass());
// pm.add(llvm::createEarlyCSEPass());
pm.run(*module);
// module->print(llvm::outs(), nullptr);