This is an archive of the discontinued LLVM Phabricator instance.

[LegalizeDAG] Convert strict fp nodes to libcalls without losing the chain.
ClosedPublic

Authored by craig.topper on Nov 15 2019, 12:01 PM.

Details

Summary

Previously we mutated the node and then converted it to a libcall. But this loses the chain information.

This patch keeps the chain, but unfortunately breaks tail call optimization as the functions involved in deciding if a node is in tail call position can't handle the chain. But correct ordering seems more important to be right.

Somehow the SystemZ tests improved. I looked at one of them and it seemed that we're handling the split vector elements in a different order and that made the copies work better.

Diff Detail

Event Timeline

craig.topper created this revision.Nov 15 2019, 12:01 PM
Herald added a project: Restricted Project. · View Herald TranscriptNov 15 2019, 12:01 PM
Herald added a subscriber: hiraditya. · View Herald Transcript
uweigand accepted this revision.Nov 18 2019, 6:06 AM

This makes sense to me. I've also verified that the SystemZ tests are indeed still correct. LGTM.

This revision is now accepted and ready to land.Nov 18 2019, 6:06 AM
This revision was automatically updated to reflect the committed changes.