================
@@ -1108,12 +1109,19 @@ static void initializeBuffer(CodeGenModule &CGM,
llvm::GlobalVariable *GV,
// Make sure the global variable is buffer resource handle
llvm::Type *HandleTy = GV->getValueType();
assert(HandleTy->isTargetExtTy() && "unexpected type of the buffer global");
+ llvm::Type *UnderlyingType =
+ cast<TargetExtType>(HandleTy)->getTypeParameter(0);
llvm::Value *CreateHandle = Builder.CreateIntrinsic(
/*ReturnType=*/HandleTy, IntrID, Args, nullptr,
Twine(GV->getName()).concat("_h"));
- llvm::Value *HandleRef = Builder.CreateStructGEP(GV->getValueType(), GV, 0);
+ llvm::Value *HandleRef =
+ CGM.getLangOpts().EmitStructuredGEP
+ ? Builder.CreateStructuredGEP(UnderlyingType, GV,
+ llvm::ConstantInt::get(CGM.IntTy, 0))
+ : Builder.CreateStructGEP(GV->getValueType(), GV, 0);
----------------
Keenuts wrote:
Sent out https://github.com/llvm/llvm-project/pull/177584
https://github.com/llvm/llvm-project/pull/177332
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits