[llvm] [AMDGPU] Handled G_UBSANTRAP GlobalIsel (PR #134492)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 6 19:52:15 PDT 2025
================
@@ -7045,6 +7047,28 @@ bool AMDGPULegalizerInfo::legalizeDebugTrap(MachineInstr &MI,
return true;
}
+bool AMDGPULegalizerInfo::legalizeUbsanTrap(MachineInstr &MI,
+ MachineRegisterInfo &MRI,
+ MachineIRBuilder &B) const {
+ // Is non-HSA path or trap-handler disabled? Then, report a warning
+ // accordingly
+ if (!ST.isTrapHandlerEnabled() ||
+ ST.getTrapHandlerAbi() != GCNSubtarget::TrapHandlerAbi::AMDHSA) {
+ DiagnosticInfoUnsupported NoTrap(B.getMF().getFunction(),
+ "ubsantrap handler not supported",
+ MI.getDebugLoc(), DS_Warning);
+ LLVMContext &Ctx = B.getContext();
+ Ctx.diagnose(NoTrap);
+ } else {
+ // Insert trap instruction
+ B.buildInstr(AMDGPU::S_TRAP)
+ .addImm(static_cast<unsigned>(GCNSubtarget::TrapID::LLVMAMDHSATrap));
+ }
+
+ MI.eraseFromParent();
----------------
arsenm wrote:
It has to be modified or erased otherwise it will be a legalization loop
https://github.com/llvm/llvm-project/pull/134492
More information about the llvm-commits
mailing list