[PATCH] D52837: [WebAssembly] Ignore DBG_VALUE in WebAssemblyCFGStacify pass when looking for block start
Heejin Ahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 3 15:48:15 PDT 2018
aheejin added a comment.
In https://reviews.llvm.org/D52837#1254381, @sbc100 wrote:
> Is there any way to we can make this test case more focused?
>
> How does the output of the test differ without this fix?
In MIR tests,
before (wrong):
%18:i32 = I32_WRAP_I64 ... ; defines %18
DBG_VALUE ...
BLOCK
BR_UNLESS ... %18 ... ; uses %18
after (right):
BLOCK
%18:i32 = I32_WRAP_I64 ... ; defines %18
DBG_VALUE ...
BR_UNLESS ... %18 ... ; uses %18
So `I32_WRAP_I64` is a child of `BR_UNLESS` in the stackified form, but the loop stops at `DBG_VALUE` without checking `I32_WRAP_I64` and places `BLOCK` in the middle of the stackified instruction sequence.
I think the way we can make this test case clearer or more focused is do an MIR test, which would show the instruction sequence containing `DBG_VALUE`, which disappears in .s file, as I suggested above.
Repository:
rL LLVM
https://reviews.llvm.org/D52837
More information about the llvm-commits
mailing list