This is an archive of the discontinued LLVM Phabricator instance.

Utilize direct move instructions for bitcast operations between floating point and integral values
ClosedPublic

Authored by nemanjai on Dec 7 2015, 4:25 AM.

Details

Summary

LLVM IR frequently contains bitcast operations between floating point and integer values of the same width. Doing this through memory operations is quite expensive on PPC. This patch allows the use of direct register moves between FPRs and GPRs for lowering bitcasts.

Diff Detail

Repository
rL LLVM

Event Timeline

nemanjai updated this revision to Diff 42049.Dec 7 2015, 4:25 AM
nemanjai retitled this revision from to Utilize direct move instructions for bitcast operations between floating point and integral values.
nemanjai updated this object.
nemanjai added reviewers: hfinkel, wschmidt, kbarton, seurer.
nemanjai set the repository for this revision to rL LLVM.
nemanjai added a subscriber: llvm-commits.
nemanjai updated this revision to Diff 42054.Dec 7 2015, 4:33 AM

The initial diff I uploaded is missing the test case. Forgot to svn add. Sorry for the noise.

hfinkel accepted this revision.Dec 10 2015, 3:01 AM
hfinkel edited edge metadata.

LGTM.

This revision is now accepted and ready to land.Dec 10 2015, 3:01 AM
nemanjai closed this revision.Dec 10 2015, 5:38 AM

Committed revision 255246.