[PATCH] D150675: [AMDGPU] Rewrite device ctor / dtor handling to use .init / .fini sections
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 16 08:13:32 PDT 2023
arsenm added inline comments.
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:73
+ return new GlobalVariable(
+ M, ArrayType::get(IRB.getPtrTy(1), 0),
+ /*isConstant=*/true, GlobalValue::ExternalLinkage,
----------------
Use the enum or query from datalayout
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:78
+ /*InsertBefore=*/nullptr, GlobalVariable::NotThreadLocal,
+ /*AddressSpace=*/1);
+ });
----------------
Use the enum or query from datalayout
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:82
+ IsCtor ? "__init_array_end" : "__fini_array_end",
+ ArrayType::get(IRB.getPtrTy(1), 0), [&]() {
+ return new GlobalVariable(
----------------
Ditto
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:84
+ return new GlobalVariable(
+ M, ArrayType::get(IRB.getPtrTy(1), 0),
+ /*isConstant=*/true, GlobalValue::ExternalLinkage,
----------------
Ditto
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:89
+ /*InsertBefore=*/nullptr, GlobalVariable::NotThreadLocal,
+ /*AddressSpace=*/1);
+ });
----------------
Ditto
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:99
+ auto *CallBackPHI = IRB.CreatePHI(IRB.getPtrTy(1), 2, "ptr");
+ auto *CallBack = IRB.CreateLoad(PointerType::getUnqual(CallBackTy),
+ CallBackPHI, "callback");
----------------
I don't like getUnqual, it's a bad name that implies they're 0="unqualified" which is not really how things work. Query the function's address space
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp:103
+ auto *NewCallBack =
+ IRB.CreateInBoundsGEP(IRB.getPtrTy(1), CallBackPHI,
+ ConstantInt::get(IRB.getInt64Ty(), 1), "next");
----------------
Should just save the ptr type to a variable and reuse throughout
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D150675/new/
https://reviews.llvm.org/D150675
More information about the llvm-commits
mailing list