This is an archive of the discontinued LLVM Phabricator instance.

[BranchFolding] Fix live-in's when hoisting code
ClosedPublic

Authored by Ka-Ka on May 30 2018, 4:00 AM.

Details

Summary

When the branch folder hoist code into a predecessor it adjust live-in's
in the blocks it hoist code from. However it fail to handle hoisted code
that contain a defed register that originally is live-in in the block
through a super register.

This is fixed by replacing the live-in handling code with calls to
utility functions in LivePhysRegs.

Diff Detail

Repository
rL LLVM

Event Timeline

Ka-Ka created this revision.May 30 2018, 4:00 AM

Adding reviewers.

The fault was found in an out of tree target but was reproduced with a SystemZ testcase. Ulrich Weigand, can you review the SyztemZ testcase?

kparzysz accepted this revision.Jun 5 2018, 8:11 AM
This revision is now accepted and ready to land.Jun 5 2018, 8:11 AM
This revision was automatically updated to reflect the committed changes.