@@ -55,9 +55,9 @@ class TraceRayInlineLoweringPass : public FunctionPass
5555 // m_ShMemRTCtrls is an array of RTStackFormat::RTCtrl in ShadowMemory
5656 // together, they are RayQueryObjects[n]
5757 // RTStack2/SMStack2 m_ShMemRTStacks[n]
58- Value * m_ShMemRTStacks = nullptr ;
58+ AllocaInst * m_ShMemRTStacks = nullptr ;
5959 // RayQueryStateInfo m_ShMemRTCtrls[n]
60- Value * m_ShMemRTCtrls = nullptr ;
60+ AllocaInst * m_ShMemRTCtrls = nullptr ;
6161 CodeGenContext* m_CGCtx = nullptr ;
6262 bool singleRQMemRayStore = false ;
6363 // if there is only one Proceed and it's not in a loop, then, we only need to prepare data for Proceed() once
@@ -78,14 +78,14 @@ class TraceRayInlineLoweringPass : public FunctionPass
7878 void LowerCommitProceduralPrimitiveHit (Function& F);
7979
8080 // return m_ShMemRTCtrls[index]
81- Value * getShMemRTCtrl (RTBuilder& builder, unsigned queryIndex) {
81+ GetElementPtrInst * getShMemRTCtrl (RTBuilder& builder, unsigned queryIndex) {
8282 return getShMemRTCtrl (builder, builder.getInt32 (queryIndex));
8383 }
8484
8585 // return m_ShMemRTCtrls[index]
86- Value * getShMemRTCtrl (RTBuilder& builder, Value* queryIndex) {
87- return builder. CreateGEP (cast<llvm::AllocaInst> (m_ShMemRTCtrls) ->getAllocatedType (),
88- m_ShMemRTCtrls, { builder.getInt32 (0 ), queryIndex }, VALUE_NAME (" &shadowMem.RTCtrl" ));
86+ GetElementPtrInst * getShMemRTCtrl (RTBuilder& builder, Value* queryIndex) {
87+ return GetElementPtrInst::Create (m_ShMemRTCtrls->getAllocatedType (),
88+ m_ShMemRTCtrls, { builder.getInt32 (0 ), queryIndex }, VALUE_NAME (" &shadowMem.RTCtrl" ), &(*builder. GetInsertPoint ()) );
8989 }
9090
9191 // return rtStacks[index]
@@ -96,7 +96,7 @@ class TraceRayInlineLoweringPass : public FunctionPass
9696 // return rtStacks[index]
9797 RTBuilder::SyncStackPointerVal* getShMemRayQueryRTStack (RTBuilder& builder, Value* queryIndex) {
9898 return static_cast <RTBuilder::SyncStackPointerVal*>(
99- builder.CreateGEP (cast<llvm::AllocaInst>( m_ShMemRTStacks) ->getAllocatedType (),
99+ builder.CreateGEP (m_ShMemRTStacks->getAllocatedType (),
100100 m_ShMemRTStacks, { builder.getInt32 (0 ), queryIndex }, VALUE_NAME (" &shadowMem.RTStack" )));
101101 }
102102
@@ -360,8 +360,8 @@ Value* TraceRayInlineLoweringPass::emitProceedMainBody(
360360 builder.copyMemHitInProceed (HWStackPointer, ShadowMemStackPointer, singleRQProceed, usesDeprecatedCopyMemHitInRQProceed);
361361
362362 // get ray Current ray control for object
363- Value * ShdowMemRTCtrlPtr = getShMemRTCtrl (builder, queryObjIndex);
364- Value * traceRayCtrl = builder.getSyncTraceRayControl (ShdowMemRTCtrlPtr);
363+ GetElementPtrInst * ShdowMemRTCtrlPtr = getShMemRTCtrl (builder, queryObjIndex);
364+ LoadInst * traceRayCtrl = builder.getSyncTraceRayControl (ShdowMemRTCtrlPtr);
365365
366366 if (IGC_IS_FLAG_ENABLED (DisableLoadAsFenceOpInRaytracing))
367367 {
0 commit comments