[llvm] [WebAssembly] Enable a limited amount of stackification for debug code (PR #136510)
via llvm-commits
llvm-commits at lists.llvm.org
Thu May 29 04:30:12 PDT 2025
================
@@ -262,36 +267,52 @@ static bool shouldRematerialize(const MachineInstr &Def,
// LiveIntervals to handle complex cases.
static MachineInstr *getVRegDef(unsigned Reg, const MachineInstr *Insert,
const MachineRegisterInfo &MRI,
- const LiveIntervals &LIS) {
+ const LiveIntervals *LIS) {
// Most registers are in SSA form here so we try a quick MRI query first.
if (MachineInstr *Def = MRI.getUniqueVRegDef(Reg))
return Def;
// MRI doesn't know what the Def is. Try asking LIS.
- if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore(
- LIS.getInstructionIndex(*Insert)))
- return LIS.getInstructionFromIndex(ValNo->def);
+ if (LIS != nullptr) {
+ SlotIndex InstIndex = LIS->getInstructionIndex(*Insert);
+ if (const VNInfo *ValNo = LIS->getInterval(Reg).getVNInfoBefore(InstIndex))
+ return LIS->getInstructionFromIndex(ValNo->def);
+ }
return nullptr;
}
// Test whether Reg, as defined at Def, has exactly one use. This is a
// generalization of MachineRegisterInfo::hasOneNonDBGUse that uses
-// LiveIntervals to handle complex cases.
-static bool hasOneNonDBGUse(unsigned Reg, MachineInstr *Def,
- MachineRegisterInfo &MRI, MachineDominatorTree &MDT,
- LiveIntervals &LIS) {
+// LiveIntervals to handle complex cases in optimized code.
+static bool hasSingleUse(unsigned Reg, MachineRegisterInfo &MRI,
+ WebAssemblyFunctionInfo &MFI, bool Optimize,
+ MachineInstr *Def, LiveIntervals *LIS) {
+ if (!Optimize) {
+ // We don't want to stackify DBG_VALUE operands since WASM stack locations
+ // are less useful and less widely supported than WASM local locations.
----------------
SingleAccretion wrote:
Added.
https://github.com/llvm/llvm-project/pull/136510
More information about the llvm-commits
mailing list