This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Don't try to compress jump tables if there are any inline asm instructions.
ClosedPublic

Authored by aemerson on Dec 8 2020, 10:16 AM.

Details

Summary

Inline asm can contain constructs like .bytes which may have arbitrary size. In some cases, this causes us to miscalculate the size of blocks and therefore offsets, causing us to incorrectly compress a JT.

To be safe, just bail out of the whole thing if we find any inline asm.

Fixes PR48255

Diff Detail

Event Timeline

aemerson created this revision.Dec 8 2020, 10:16 AM
aemerson requested review of this revision.Dec 8 2020, 10:17 AM
t.p.northover accepted this revision.Dec 10 2020, 1:08 AM

I think this is a reasonable change, inline asm is pretty rare.

This revision is now accepted and ready to land.Dec 10 2020, 1:08 AM
This revision was landed with ongoing or failed builds.Dec 10 2020, 12:20 PM
This revision was automatically updated to reflect the committed changes.