diff options
author | Florian Hahn <florian.hahn@arm.com> | 2017-07-29 20:35:28 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2017-07-29 20:35:28 +0000 |
commit | f63a5e91dbedd7d1388e08b5f491d90f8f2c1a0f (patch) | |
tree | 0e50cc590fde608df14c9739358040b80a420786 /llvm/lib/DebugInfo/Symbolize/Symbolize.cpp | |
parent | 2f86e3d4948853f7b753e7ae4b9c9eac8f6e264f (diff) | |
download | bcm5719-llvm-f63a5e91dbedd7d1388e08b5f491d90f8f2c1a0f.tar.gz bcm5719-llvm-f63a5e91dbedd7d1388e08b5f491d90f8f2c1a0f.zip |
[AArch64] Tie source and destination operands for AESMC/AESIMC.
Summary:
Most CPUs implementing AES fusion require instruction pairs of the form
AESE Vn, _
AESMC Vn, Vn
and
AESD Vn, _
AESIMC Vn, Vn
The constraint is added to AES(I)MC instructions which use the result of
an AES(E|D) instruction by using AES(I)MCTrr pseudo instructions, which
constraint source and destination registers to be the same.
A nice side effect of this change is that now all possible pairs are
scheduled back-to-back on the exynos-m1 for the misched-fusion-aes.ll
test case.
I had to update aes_load_store. The version I added initially was very
reduced and with the new constraint, AESE/AESMC could not be scheduled
back-to-back. I updated the test to be more realistic and still expose
the same scheduling problem as the initial test case.
Reviewers: t.p.northover, rengolin, evandro, kristof.beyls, silviu.baranga
Reviewed By: t.p.northover, evandro
Subscribers: aemerson, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D35299
llvm-svn: 309495
Diffstat (limited to 'llvm/lib/DebugInfo/Symbolize/Symbolize.cpp')
0 files changed, 0 insertions, 0 deletions