diff options
author | Yury Delendik <ydelendik@mozilla.com> | 2018-09-26 23:49:21 +0000 |
---|---|---|
committer | Yury Delendik <ydelendik@mozilla.com> | 2018-09-26 23:49:21 +0000 |
commit | b3857e4d35fe4435da943fc0e7056855babcf5d6 (patch) | |
tree | 255258c24b1351fc024b21ec93c93997e1f1d11c /llvm/lib | |
parent | f42aa29b68ae1bdf22549efde2844a070e82b4ec (diff) | |
download | bcm5719-llvm-b3857e4d35fe4435da943fc0e7056855babcf5d6.tar.gz bcm5719-llvm-b3857e4d35fe4435da943fc0e7056855babcf5d6.zip |
[WebAssembly] Fix MRI.hasOneNonDBGUse assert in WebAssemblyRegStackify pass
Summary:
The OneUseDominatesOtherUses in the WebAssemblyRegStackify not properly validates register use using hasOneUse. Since we added/modified DBG_VALUE the assert started catching valid cases.
See also https://reviews.llvm.org/D49034#1247200
Fix verified by running the wasm waterfall.
Reviewed By: dschuff
Tags: #debug-info
Differential Revision: https://reviews.llvm.org/D49034
llvm-svn: 343154
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp index 5b6a91dbc9d..4649230d454 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp @@ -428,8 +428,8 @@ static bool OneUseDominatesOtherUses(unsigned Reg, const MachineOperand &OneUse, if (!TargetRegisterInfo::isVirtualRegister(DefReg) || !MFI.isVRegStackified(DefReg)) return false; - assert(MRI.hasOneUse(DefReg)); - const MachineOperand &NewUse = *MRI.use_begin(DefReg); + assert(MRI.hasOneNonDBGUse(DefReg)); + const MachineOperand &NewUse = *MRI.use_nodbg_begin(DefReg); const MachineInstr *NewUseInst = NewUse.getParent(); if (NewUseInst == OneUseInst) { if (&OneUse > &NewUse) |