File tree 3 files changed +23
-1
lines changed
GenISAIntrinsics/generator/input
3 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -52,6 +52,7 @@ static std::optional<RTMemRegion> getIntrinsicRegion(
52
52
case GenISAIntrinsic::GenISA_LocalBufferPointer:
53
53
return RTMemRegion::LocalArgs;
54
54
case GenISAIntrinsic::GenISA_AsyncStackPtr:
55
+ case GenISAIntrinsic::GenISA_AsyncStackPtrPlaceHolder:
55
56
return RTMemRegion::RTAsyncStack;
56
57
case GenISAIntrinsic::GenISA_SyncStackPtr:
57
58
return RTMemRegion::RTSyncStack;
Original file line number Diff line number Diff line change @@ -456,7 +456,9 @@ bool LSCCacheOptimizationPass::create_48_wide_store(Function& function)
456
456
// which would look something like this:
457
457
// %perLaneAsyncStackPointer24 = call noalias align 128 dereferenceable(256) %"struct.RTStackFormat::RTStack" addrspace(1)* @"llvm.genx.GenISA.AsyncStackPtr.p1struct.RTStackFormat::RTStack.i64"(i64 %19)
458
458
if (auto* intrinsic_call = dyn_cast<GenIntrinsicInst>(i)) {
459
- if (intrinsic_call->getIntrinsicID() == llvm::GenISAIntrinsic::GenISA_AsyncStackPtr) {
459
+ if ((intrinsic_call->getIntrinsicID() == llvm::GenISAIntrinsic::GenISA_AsyncStackPtr) ||
460
+ (intrinsic_call->getIntrinsicID() == llvm::GenISAIntrinsic::GenISA_AsyncStackPtrPlaceHolder))
461
+ {
460
462
// Create an IRBuilder with an insertion point set to the given intrinsic_call instruction.
461
463
// IRBuilder automatically inserts instructions when it creates them,
462
464
// and the inserted instructions (dynamically allocated) are deleted when the function is destroyed.
Original file line number Diff line number Diff line change @@ -10745,6 +10745,25 @@ intrinsics:
10745
10745
memory_effects :
10746
10746
- !<MemoryRestriction>
10747
10747
memory_access : !MemoryAccessType NoModRef
10748
+ - !<IntrinsicDefinition>
10749
+ name : " GenISA_AsyncStackPtrPlaceHolder"
10750
+ comment : " Raytracing: Intrinsic used as marker in later passes to find per\
10751
+ \ lane async stack base. It is just a cast and will be lowered prior to\
10752
+ \ codegen"
10753
+ return_definition : !<ReturnDefinition>
10754
+ type_definition : *p_any_
10755
+ comment : " "
10756
+ arguments :
10757
+ - !<ArgumentDefinition>
10758
+ name : Arg0
10759
+ type_definition : *any_int
10760
+ comment : " "
10761
+ attributes :
10762
+ - !AttributeID " NoDuplicate"
10763
+ - !AttributeID " NoUnwind"
10764
+ memory_effects :
10765
+ - !<MemoryRestriction>
10766
+ memory_access : !MemoryAccessType NoModRef
10748
10767
- !<IntrinsicDefinition>
10749
10768
name : " GenISA_SyncStackPtr"
10750
10769
comment : " Raytracing: Intrinsic used as marker in later passes to find per\
You can’t perform that action at this time.
0 commit comments