@@ -237,35 +237,6 @@ static void fillPackoffsetLayout(const HLSLBufferDecl *BufDecl,
237237 }
238238}
239239
240- std::pair<llvm::Intrinsic::ID, bool >
241- CGHLSLRuntime::getCreateHandleFromBindingIntrinsic () {
242- switch (getArch ()) {
243- case llvm::Triple::dxil:
244- return std::pair (llvm::Intrinsic::dx_resource_handlefrombinding, true );
245- case llvm::Triple::spirv:
246- return std::pair (llvm::Intrinsic::spv_resource_handlefrombinding, true );
247- default :
248- llvm_unreachable (" Intrinsic resource_handlefrombinding not supported by "
249- " target architecture" );
250- }
251- }
252-
253- std::pair<llvm::Intrinsic::ID, bool >
254- CGHLSLRuntime::getCreateHandleFromImplicitBindingIntrinsic () {
255- switch (getArch ()) {
256- case llvm::Triple::dxil:
257- return std::pair (llvm::Intrinsic::dx_resource_handlefromimplicitbinding,
258- true );
259- case llvm::Triple::spirv:
260- return std::pair (llvm::Intrinsic::spv_resource_handlefromimplicitbinding,
261- true );
262- default :
263- llvm_unreachable (
264- " Intrinsic resource_handlefromimplicitbinding not supported by "
265- " target architecture" );
266- }
267- }
268-
269240// Codegen for HLSLBufferDecl
270241void CGHLSLRuntime::addBuffer (const HLSLBufferDecl *BufDecl) {
271242
@@ -595,31 +566,27 @@ void CGHLSLRuntime::initializeBufferFromBinding(const HLSLBufferDecl *BufDecl,
595566 llvm::ConstantInt::get (CGM.IntTy , RBA ? RBA->getSpaceNumber () : 0 );
596567 Value *Name = nullptr ;
597568
598- auto [ IntrinsicID, HasNameArg] =
569+ llvm::Intrinsic::ID IntrinsicID =
599570 RBA->hasRegisterSlot ()
600571 ? CGM.getHLSLRuntime ().getCreateHandleFromBindingIntrinsic ()
601572 : CGM.getHLSLRuntime ().getCreateHandleFromImplicitBindingIntrinsic ();
602573
603- if (HasNameArg) {
604- std::string Str (BufDecl->getName ());
605- std::string GlobalName (Str + " .str" );
606- Name = CGM.GetAddrOfConstantCString (Str, GlobalName.c_str ()).getPointer ();
607- }
574+ std::string Str (BufDecl->getName ());
575+ std::string GlobalName (Str + " .str" );
576+ Name = CGM.GetAddrOfConstantCString (Str, GlobalName.c_str ()).getPointer ();
608577
609578 // buffer with explicit binding
610579 if (RBA->hasRegisterSlot ()) {
611580 auto *RegSlot = llvm::ConstantInt::get (CGM.IntTy , RBA->getSlotNumber ());
612- SmallVector<Value *> Args{Space, RegSlot, RangeSize, Index, NonUniform};
613- if (Name)
614- Args.push_back (Name);
581+ SmallVector<Value *> Args{Space, RegSlot, RangeSize,
582+ Index, NonUniform, Name};
615583 initializeBuffer (CGM, GV, IntrinsicID, Args);
616584 } else {
617585 // buffer with implicit binding
618586 auto *OrderID =
619587 llvm::ConstantInt::get (CGM.IntTy , RBA->getImplicitBindingOrderID ());
620- SmallVector<Value *> Args{OrderID, Space, RangeSize, Index, NonUniform};
621- if (Name)
622- Args.push_back (Name);
588+ SmallVector<Value *> Args{OrderID, Space, RangeSize,
589+ Index, NonUniform, Name};
623590 initializeBuffer (CGM, GV, IntrinsicID, Args);
624591 }
625592}
0 commit comments