-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Closed
Labels
Description
if we need to replace the load and the types are different we cant use replaceAllUsesWith
.
Location of Assert
LI->replaceAllUsesWith(V); |
Type differences
expr V->dump()
%32 = extractvalue { float, i1 } %31, 0
(lldb) expr *V->getType()
(llvm::Type) $1 = {
Context = 0x000000013f8229c0
ID = FloatTyID
SubclassData = 0
NumContainedTys = 0
ContainedTys = nullptr
}
(lldb) expr LI->dump()
%33 = load <1 x float>, ptr %30, align 4
(lldb) expr *LI->getType()
(llvm::Type) $2 = {
Context = 0x000000013f8229c0
ID = FixedVectorTyID
SubclassData = 0
NumContainedTys = 1
ContainedTys = 0x000000012904ad10
Crash Dump
* thread #1, queue = 'com.apple.main-thread', stop reason = instruction step into
* frame #0: 0x0000000102054088 clang-dxc`llvm::Value::replaceAllUsesWith(this=0x0000000128850150, New=0x000000016fdf3ea8) at Value.cpp:533
frame #1: 0x0000000100110174 clang-dxc`createTypedBufferLoad(II=0x0000000128850150, LI=0x000000012883b2d0, Offset=0x0000000000000000, RTI=0x0000000129013408) at DXILResourceAccess.cpp:146:7
frame #2: 0x000000010010ef38 clang-dxc`createLoadIntrinsic(II=0x0000000128850150, LI=0x000000012883b2d0, Offset=0x0000000000000000, RTI=0x0000000129013408) at DXILResourceAccess.cpp:167:12
frame #3: 0x000000010010e0a4 clang-dxc`replaceAccess(II=0x0000000128850150, RTI=0x0000000129013408) at DXILResourceAccess.cpp:224:7
frame #4: 0x000000010010d9c8 clang-dxc`transformResourcePointers(F=0x0000000128804ac8, DRTM=0x0000000128814740) at DXILResourceAccess.cpp:249:5
frame #5: 0x0000000100110b04 clang-dxc`(anonymous namespace)::DXILResourceAccessLegacy::runOnFunction(this=0x000000012883e150, F=0x0000000128804ac8) at DXILResourceAccess.cpp:278:12
frame #6: 0x0000000101f5feb4 clang-dxc`llvm::FPPassManager::runOnFunction(this=0x0000000128859e70, F=0x0000000128804ac8) at LegacyPassManager.cpp:1406:27
frame #7: 0x0000000101f66a48 clang-dxc`llvm::FPPassManager::runOnModule(this=0x0000000128859e70, M=0x000000012ee0d2e0) at LegacyPassManager.cpp:1452:16
frame #8: 0x0000000101f60774 clang-dxc`(anonymous namespace)::MPPassManager::runOnModule(this=0x000000012880e360, M=0x000000012ee0d2e0) at LegacyPassManager.cpp:1521:27
frame #9: 0x0000000101f602e8 clang-dxc`llvm::legacy::PassManagerImpl::run(this=0x0000000129010600, M=0x000000012ee0d2e0) at LegacyPassManager.cpp:539:44
frame #10: 0x0000000101f66e50 clang-dxc`llvm::legacy::PassManager::run(this=0x000000016fdf47e8, M=0x000000012ee0d2e0) at LegacyPassManager.cpp:1648:14
frame #11: 0x0000000103b41860 clang-dxc`(anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(this=0x000000016fdf4c60, Action=Backend_EmitAssembly, OS=llvm::raw_pwrite_stream @ 0x000000012ee0cfb0, DwoOS=nullptr) at BackendUtil.cpp:1244:19
frame #12: 0x0000000103b32000 clang-dxc`(anonymous namespace)::EmitAssemblyHelper::emitAssembly(this=0x000000016fdf4c60, Action=Backend_EmitAssembly, OS=llvm::raw_pwrite_stream @ 0x000000012ee0cfb0, BC=0x000000012ee0d160) at BackendUtil.cpp:1268:3
frame #13: 0x0000000103b3151c clang-dxc`clang::emitBackendOutput(CI=0x000000013f8235b0, CGOpts=0x000000014002be18, TDesc=(Data = "e-m:e-p:32:32-i1:32-i8:8-i16:16-i32:32-i64:64-f16:16-f32:32-f64:64-n8:16:32:64", Length = 78), M=0x000000012ee0d2e0, Action=Backend_EmitAssembly, VFS=IntrusiveRefCntPtr<llvm::vfs::FileSystem> @ 0x000000016fdf4f68, OS=nullptr, BC=0x000000012ee0d160) at BackendUtil.cpp:1433:13
frame #14: 0x00000001042aac7c clang-dxc`clang::BackendConsumer::HandleTranslationUnit(this=0x000000012ee0d160, C=0x000000012f01c600) at CodeGenAction.cpp:316:3
frame #15: 0x0000000106aca0b8 clang-dxc`clang::ParseAST(S=0x000000012f03d800, PrintStats=false, SkipFunctionBodies=false) at ParseAST.cpp:184:13
frame #16: 0x0000000104e2175c clang-dxc`clang::ASTFrontendAction::ExecuteAction(this=0x000000013f829060) at FrontendAction.cpp:1345:3
frame #17: 0x00000001042b06f0 clang-dxc`clang::CodeGenAction::ExecuteAction(this=0x000000013f829060) at CodeGenAction.cpp:1111:30
frame #18: 0x0000000104e20fd4 clang-dxc`clang::FrontendAction::Execute(this=0x000000013f829060) at FrontendAction.cpp:1227:3
frame #19: 0x0000000104d3ac18 clang-dxc`clang::CompilerInstance::ExecuteAction(this=0x000000013f8235b0, Act=0x000000013f829060) at CompilerInstance.cpp:1056:33
frame #20: 0x0000000104f5dbf4 clang-dxc`clang::ExecuteCompilerInvocation(Clang=0x000000013f8235b0) at ExecuteCompilerInvocation.cpp:300:25
frame #21: 0x0000000100014a60 clang-dxc`cc1_main(Argv=ArrayRef<const char *> @ 0x000000016fdf5ea8, Argv0="/Users/farzonlotfi/Projects/llvm_debug_build/bin/clang-20", MainAddr=0x0000000100004980) at cc1_main.cpp:294:15
frame #22: 0x0000000100006328 clang-dxc`ExecuteCC1Tool(ArgV=0x000000016fdf9698, ToolContext=0x000000016fdfe648) at driver.cpp:218:12
frame #23: 0x00000001000133dc clang-dxc`clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(this=0x000000016fdfa1d8, ArgV=0x000000016fdf9698) const at driver.cpp:364:16
frame #24: 0x00000001000133ac clang-dxc`int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(callable=6171894232, params=0x000000016fdf9698) at STLFunctionalExtras.h:46:12
frame #25: 0x0000000104a43890 clang-dxc`llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(this=0x000000016fdfa860, params=0x000000016fdf9698) const at STLFunctionalExtras.h:69:12
frame #26: 0x0000000104a43850 clang-dxc`clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0::operator()(this=0x000000016fdf95f8) const at Job.cpp:435:34
frame #27: 0x0000000104a4381c clang-dxc`void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(callable=6171891192) at STLFunctionalExtras.h:46:12
frame #28: 0x00000001011764b4 clang-dxc`llvm::function_ref<void ()>::operator()(this=0x000000016fdf9598) const at STLFunctionalExtras.h:69:12
frame #29: 0x00000001030a683c clang-dxc`llvm::CrashRecoveryContext::RunSafely(this=0x000000016fdf9638, Fn=function_ref<void ()> @ 0x000000016fdf9598) at CrashRecoveryContext.cpp:426:3
frame #30: 0x0000000104a3fd40 clang-dxc`clang::driver::CC1Command::Execute(this=0x000000013f823800, Redirects=ArrayRef<std::__1::optional<llvm::StringRef> > @ 0x000000016fdf9680, ErrMsg="", ExecutionFailed=0x000000016fdf9b8f) const at Job.cpp:435:12
frame #31: 0x00000001049d5754 clang-dxc`clang::driver::Compilation::ExecuteCommand(this=0x000000013f822320, C=0x000000013f823800, FailingCommand=0x000000016fdf9ca8, LogOnly=false) const at Compilation.cpp:196:15
frame #32: 0x00000001049d59e0 clang-dxc`clang::driver::Compilation::ExecuteJobs(this=0x000000013f822320, Jobs=0x000000013f8223a0, FailingCommands=0x000000016fdfa538, LogOnly=false) const at Compilation.cpp:251:19
frame #33: 0x00000001049f3f5c clang-dxc`clang::driver::Driver::ExecuteCompilation(this=0x000000016fdfa588, C=0x000000013f822320, FailingCommands=0x000000016fdfa538) at Driver.cpp:2220:5
frame #34: 0x0000000100005aa4 clang-dxc`clang_main(Argc=15, Argv=0x000000016fdfed88, ToolContext=0x000000016fdfe648) at driver.cpp:402:21
frame #35: 0x00000001000401c0 clang-dxc`main(argc=15, argv=0x000000016fdfed88) at clang-driver.cpp:17:10
frame #36: 0x0000000185c86b4c dyld`start + 6000
LLVMIR
if.then.i240.i: ; preds = %land.lhs.true.i237.i
%elt.min.i241.i = tail call i32 @llvm.umin.i32(i32 %add.i195.i, i32 %27)
%30 = tail call noundef nonnull align 4 dereferenceable(4) ptr @llvm.dx.resource.getpointer.p0.tdx.TypedBuffer_f32_1_0_0t(target("dx.TypedBuffer", float, 1, 0, 0) %_ZL4matB_h.i.i, i32 %elt.min.i241.i)
%31 = call { float, i1 } @llvm.dx.resource.load.typedbuffer.f32.tdx.TypedBuffer_f32_1_0_0t(target("dx.TypedBuffer", float, 1, 0, 0) %_ZL4matB_h.i.i, i32 %elt.min.i241.i)
%32 = extractvalue { float, i1 } %31, 0
%33 = load <1 x float>, ptr %30, align 4
%vecins.i243.i = shufflevector <1 x float> %33, <1 x float> poison, <4 x i32> <i32 0, i32 poison, i32 poison, i32 poison>
%add5.i244.i = add i32 %add.i195.i, %13
%elt.min6.i245.i = tail call i32 @llvm.umin.i32(i32 %add5.i244.i, i32 %27)
%34 = tail call noundef nonnull align 4 dereferenceable(4) ptr @llvm.dx.resource.getpointer.p0.tdx.TypedBuffer_f32_1_0_0t(target("dx.TypedBuffer", float, 1, 0, 0) %_ZL4matB_h.i.i, i32 %elt.min6.i245.i)
%35 = load float, ptr %34, align 4, !tbaa !5
%vecins8.i247.i = insertelement <4 x float> %vecins.i243.i, float %35, i64 1
%add9.i248.i.reass = add i32 %add.i195.i, %invariant.op
%elt.min10.i249.i = tail call i32 @llvm.umin.i32(i32 %add9.i248.i.reass, i32 %27)
%36 = tail call noundef nonnull align 4 dereferenceable(4) ptr @llvm.dx.resource.getpointer.p0.tdx.TypedBuffer_f32_1_0_0t(target("dx.TypedBuffer", float, 1, 0, 0) %_ZL4matB_h.i.i, i32 %elt.min10.i249.i)
%37 = load float, ptr %36, align 4, !tbaa !5
%vecins12.i251.i = insertelement <4 x float> %vecins8.i247.i, float %37, i64 2
%add13.i252.i.reass = add i32 %add.i195.i, %invariant.op35
%elt.min14.i253.i = tail call i32 @llvm.umin.i32(i32 %add13.i252.i.reass, i32 %27)
%38 = tail call noundef nonnull align 4 dereferenceable(4) ptr @llvm.dx.resource.getpointer.p0.tdx.TypedBuffer_f32_1_0_0t(target("dx.TypedBuffer", float, 1, 0, 0) %_ZL4matB_h.i.i, i32 %elt.min14.i253.i)
%39 = load float, ptr %38, align 4, !tbaa !5
%vecins16.i255.i = insertelement <4 x float> %vecins12.i251.i, float %39, i64 3
br label %_Z9ReadInputjjj.exit256.i
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Closed