This is an archive of the discontinued LLVM Phabricator instance.

Change block and loop signature fixing
AbandonedPublic

Authored by jgravelle-google on Oct 25 2016, 4:30 PM.

Details

Reviewers
dschuff
sunfish
Summary

We add block signatures to blocks at the ends of functions in order to
satisfy the constraints around unreachable. The way we do so breaks down
with more complex cfgs, particularly those emitted by repeated calls to
setjmp/longjmp.
Change the fixup from adding a type signature, to adding an unreachable
instruction.

Event Timeline

jgravelle-google retitled this revision from to Change block and loop signature fixing.
jgravelle-google updated this object.
jgravelle-google added reviewers: dschuff, sunfish.
jgravelle-google added a subscriber: llvm-commits.

Abandoning this.
The underlying issue was in s2wasm's modeling of loops with type signatures (https://github.com/WebAssembly/binaryen/pull/810).
I still like this conceptually, but the difference is minor enough that the prudent thing is probably to leave it as-is.

jgravelle-google abandoned this revision.Oct 28 2016, 4:14 PM