@@ -442,13 +442,15 @@ static void copyBetweenPrivateAndShadow(Value *L, GlobalVariable *Shadow,
442
442
//
443
443
static void materializeLocalsInWIScopeBlocksImpl (
444
444
const DenseMap<BasicBlock *, std::unique_ptr<LocalsSet>> &BB2MatLocals,
445
- const DenseMap<AllocaInst *, GlobalVariable *> &Local2Shadow, const Triple &TT) {
445
+ const DenseMap<AllocaInst *, GlobalVariable *> &Local2Shadow,
446
+ const Triple &TT) {
446
447
for (auto &P : BB2MatLocals) {
447
448
// generate LeaderBB and private<->shadow copies in proper BBs
448
449
BasicBlock *LeaderBB = P.first ;
449
450
BasicBlock *BB = LeaderBB->splitBasicBlock (&LeaderBB->front (), " LeaderMat" );
450
451
// Add a barrier to the original block:
451
- Instruction *At = spirv::genWGBarrier (*BB->getFirstNonPHI (), TT)->getNextNode ();
452
+ Instruction *At =
453
+ spirv::genWGBarrier (*BB->getFirstNonPHI (), TT)->getNextNode ();
452
454
453
455
for (AllocaInst *L : *P.second .get ()) {
454
456
auto MapEntry = Local2Shadow.find (L);
@@ -533,10 +535,9 @@ static bool localMustBeMaterialized(const AllocaInst *L, const BasicBlock &BB) {
533
535
// have any noticible effect, though, as reading from Shadow always goes to a
534
536
// register file anyway.
535
537
//
536
- void materializeLocalsInWIScopeBlocks (
537
- SmallPtrSetImpl<AllocaInst *> &Locals,
538
- SmallPtrSetImpl<BasicBlock *> &WIScopeBBs,
539
- const Triple &TT) {
538
+ void materializeLocalsInWIScopeBlocks (SmallPtrSetImpl<AllocaInst *> &Locals,
539
+ SmallPtrSetImpl<BasicBlock *> &WIScopeBBs,
540
+ const Triple &TT) {
540
541
// maps local variable to its "shadow" workgroup-shared global:
541
542
DenseMap<AllocaInst *, GlobalVariable *> Local2Shadow;
542
543
// records which locals must be materialized at the beginning of a block:
@@ -718,8 +719,7 @@ static void shareByValParams(Function &F, const Triple &TT) {
718
719
spirv::genWGBarrier (MergeBB->front (), TT);
719
720
}
720
721
721
- PreservedAnalyses SYCLLowerWGScopePass::run (Function &F,
722
- const llvm::Triple &TT,
722
+ PreservedAnalyses SYCLLowerWGScopePass::run (Function &F, const llvm::Triple &TT,
723
723
FunctionAnalysisManager &FAM) {
724
724
if (!F.getMetadata (WG_SCOPE_MD))
725
725
return PreservedAnalyses::all ();
@@ -876,16 +876,16 @@ Value *spirv::genLinearLocalID(Instruction &Before, const Triple &TT) {
876
876
IRBuilder<> Bld (Ctx);
877
877
Bld.SetInsertPoint (&Before);
878
878
879
- #define CREATE_CALLEE (NAME, FN_NAME ) \
880
- FunctionCallee FnCallee##NAME = M.getOrInsertFunction (FN_NAME, RetTy); \
881
- assert (FnCallee##NAME && " spirv intrinsic creation failed" ); \
879
+ #define CREATE_CALLEE (NAME, FN_NAME ) \
880
+ FunctionCallee FnCallee##NAME = M.getOrInsertFunction (FN_NAME, RetTy); \
881
+ assert (FnCallee##NAME && " spirv intrinsic creation failed" ); \
882
882
auto NAME = Bld.CreateCall (FnCallee##NAME, {});
883
883
884
- CREATE_CALLEE (LocalInvocationId_X, " _Z27__spirv_LocalInvocationId_xv" );
885
- CREATE_CALLEE (LocalInvocationId_Y, " _Z27__spirv_LocalInvocationId_yv" );
886
- CREATE_CALLEE (LocalInvocationId_Z, " _Z27__spirv_LocalInvocationId_zv" );
887
- CREATE_CALLEE (WorkgroupSize_Y, " _Z23__spirv_WorkgroupSize_yv" );
888
- CREATE_CALLEE (WorkgroupSize_Z, " _Z23__spirv_WorkgroupSize_zv" );
884
+ CREATE_CALLEE (LocalInvocationId_X, " _Z27__spirv_LocalInvocationId_xv" );
885
+ CREATE_CALLEE (LocalInvocationId_Y, " _Z27__spirv_LocalInvocationId_yv" );
886
+ CREATE_CALLEE (LocalInvocationId_Z, " _Z27__spirv_LocalInvocationId_zv" );
887
+ CREATE_CALLEE (WorkgroupSize_Y, " _Z23__spirv_WorkgroupSize_yv" );
888
+ CREATE_CALLEE (WorkgroupSize_Z, " _Z23__spirv_WorkgroupSize_zv" );
889
889
890
890
#undef CREATE_CALLEE
891
891
@@ -894,12 +894,11 @@ Value *spirv::genLinearLocalID(Instruction &Before, const Triple &TT) {
894
894
// 3: + (__spirv_WorkgroupSize_z() * __spirv_LocalInvocationId_y())
895
895
// 4: + (__spirv_LocalInvocationId_z())
896
896
return Bld.CreateAdd (
897
- Bld.CreateAdd (
898
- Bld.CreateMul (
899
- Bld.CreateMul (WorkgroupSize_Y, WorkgroupSize_Z), // 1
900
- LocalInvocationId_X), // 2
901
- Bld.CreateMul (WorkgroupSize_Z, LocalInvocationId_Y)), // 3
902
- LocalInvocationId_Z); // 4
897
+ Bld.CreateAdd (
898
+ Bld.CreateMul (Bld.CreateMul (WorkgroupSize_Y, WorkgroupSize_Z), // 1
899
+ LocalInvocationId_X), // 2
900
+ Bld.CreateMul (WorkgroupSize_Z, LocalInvocationId_Y)), // 3
901
+ LocalInvocationId_Z); // 4
903
902
} else {
904
903
StringRef Name = " __spirv_BuiltInLocalInvocationIndex" ;
905
904
GlobalVariable *G = M.getGlobalVariable (Name);
0 commit comments