Loading clang/lib/Driver/Tapir.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ TapirTargetID clang::parseTapirTarget(const ArgList &Args) { // TODO: Deprecate non-opencilk support... .Case("cilk", TapirTargetID::Cilk) .Case("cilkr", TapirTargetID::CilkR) .Case("gpu", TapirTargetID::GPU) .Default(TapirTargetID::Last_TapirTargetID); return TapirTarget; Loading clang/lib/Frontend/CompilerInvocation.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -3708,6 +3708,8 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, LangOpts.Tapir = TapirTargetID::Realm; else if (Name == "opencl") LangOpts.Tapir = TapirTargetID::OpenCL; else if (Name == "gpu") LangOpts.Tapir = TapirTargetID::GPU; else if (Name == "serial") LangOpts.Tapir = TapirTargetID::Serial; else Loading llvm/lib/Transforms/Tapir/GPUABI.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ using namespace llvm; #define DEBUG_TYPE "openclabi" #define DEBUG_TYPE "gpuabi" Value *GPUABI::lowerGrainsizeCall(CallInst *GrainsizeCall) { Value *Grainsize = ConstantInt::get(GrainsizeCall->getType(), 8); Loading Loading @@ -72,7 +72,7 @@ LoopOutlineProcessor *GPUABI::getLoopOutlineProcessor( unsigned LLVMLoop::NextKernelID = 0; LLVMLoop::LLVMLoop(Module &M) : LoopOutlineProcessor(M, LLVMM), LLVMM("spirvModule", M.getContext()) { : LoopOutlineProcessor(M, LLVMM), LLVMM("kernelModule", M.getContext()) { // Assign an ID to this kernel. MyKernelID = NextKernelID++; Loading Loading @@ -358,12 +358,15 @@ void LLVMLoop::processOutlinedLoopCall(TapirLoopInfo &TL, TaskOutlineInfo &TOI, ArrayType* arrayType = ArrayType::get(VoidPtrTy, OrderedInputs.size()); Value* argArray = B.CreateAlloca(arrayType); int i=0; for (Value *V : OrderedInputs) { //Value *ElementSize = nullptr; LLVM_DEBUG(dbgs() << "Input set value: " << *V << "\n"); Value *VPtr = B.CreateAlloca(V->getType()); B.CreateStore(V, VPtr); Value *VoidVPtr = B.CreateBitCast(VPtr, VoidPtrTy); Value *argPtr = B.CreateConstInBoundsGEP1_32(VoidPtrTy, argArray, i++); B.CreateStore(VoidVPtr, argPtr); } Value *Grainsize = TL.getGrainsize() ? Loading Loading
clang/lib/Driver/Tapir.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ TapirTargetID clang::parseTapirTarget(const ArgList &Args) { // TODO: Deprecate non-opencilk support... .Case("cilk", TapirTargetID::Cilk) .Case("cilkr", TapirTargetID::CilkR) .Case("gpu", TapirTargetID::GPU) .Default(TapirTargetID::Last_TapirTargetID); return TapirTarget; Loading
clang/lib/Frontend/CompilerInvocation.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -3708,6 +3708,8 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, LangOpts.Tapir = TapirTargetID::Realm; else if (Name == "opencl") LangOpts.Tapir = TapirTargetID::OpenCL; else if (Name == "gpu") LangOpts.Tapir = TapirTargetID::GPU; else if (Name == "serial") LangOpts.Tapir = TapirTargetID::Serial; else Loading
llvm/lib/Transforms/Tapir/GPUABI.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ using namespace llvm; #define DEBUG_TYPE "openclabi" #define DEBUG_TYPE "gpuabi" Value *GPUABI::lowerGrainsizeCall(CallInst *GrainsizeCall) { Value *Grainsize = ConstantInt::get(GrainsizeCall->getType(), 8); Loading Loading @@ -72,7 +72,7 @@ LoopOutlineProcessor *GPUABI::getLoopOutlineProcessor( unsigned LLVMLoop::NextKernelID = 0; LLVMLoop::LLVMLoop(Module &M) : LoopOutlineProcessor(M, LLVMM), LLVMM("spirvModule", M.getContext()) { : LoopOutlineProcessor(M, LLVMM), LLVMM("kernelModule", M.getContext()) { // Assign an ID to this kernel. MyKernelID = NextKernelID++; Loading Loading @@ -358,12 +358,15 @@ void LLVMLoop::processOutlinedLoopCall(TapirLoopInfo &TL, TaskOutlineInfo &TOI, ArrayType* arrayType = ArrayType::get(VoidPtrTy, OrderedInputs.size()); Value* argArray = B.CreateAlloca(arrayType); int i=0; for (Value *V : OrderedInputs) { //Value *ElementSize = nullptr; LLVM_DEBUG(dbgs() << "Input set value: " << *V << "\n"); Value *VPtr = B.CreateAlloca(V->getType()); B.CreateStore(V, VPtr); Value *VoidVPtr = B.CreateBitCast(VPtr, VoidPtrTy); Value *argPtr = B.CreateConstInBoundsGEP1_32(VoidPtrTy, argArray, i++); B.CreateStore(VoidVPtr, argPtr); } Value *Grainsize = TL.getGrainsize() ? Loading