This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Fall back if disabling neon/fp in the translator.
ClosedPublic

Authored by aemerson on Mar 16 2021, 11:59 AM.

Details

Summary

The previous technique relied on early-exiting the legalizer predicate initialization, leaving an empty rule table. That causes a fallback for most instructions, but some have legacy rules defined like G_ZEXT which can try continue, but then crash.

We should fall back earlier, in the translator, to avoid this issue.

Diff Detail

Event Timeline

aemerson created this revision.Mar 16 2021, 11:59 AM
aemerson requested review of this revision.Mar 16 2021, 11:59 AM
paquette accepted this revision.Mar 17 2021, 11:00 AM

LGTM

llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
411 ↗(On Diff #331056)

Would it make sense for this hook to just only take in the MF, and then try to call getFunction or whatever to (try to) get at the Function?

This revision is now accepted and ready to land.Mar 17 2021, 11:00 AM
aemerson added inline comments.Mar 17 2021, 11:14 AM
llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
411 ↗(On Diff #331056)

Yeah, will do.

aemerson updated this revision to Diff 331398.Mar 17 2021, 3:44 PM

Didn't mean to update this diff, ignore.