This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Move AES instruction fusion support
Needs ReviewPublic

Authored by evandro on Jul 11 2017, 8:48 AM.

Details

Summary

Move the support to fuse such instructions to the generic mechanism in the machine model used by the scheduler, as proposed in the parent revisions.

Diff Detail

Event Timeline

evandro created this revision.Jul 11 2017, 8:48 AM
evandro updated this revision to Diff 106529.Jul 13 2017, 2:01 PM
fhahn added inline comments.Jul 15 2017, 7:35 AM
llvm/lib/Target/AArch64/AArch64SchedM1.td
637

This is an unrelated whitespace change?

llvm/test/CodeGen/AArch64/misched-fusion-aes.ll
100

Do you know why the generated code for exynos-m1 changed? Maybe it uses a different number of instructions to look ahead? I think we should be careful not to introduce any regressions before committing to this new approach.

I could run a few benchmarks on some Cortex-A cores to check for performance regressions, if you are happy with the state of the set of patches.

Ping 🔔

Ping 🔔

Hi Evandro,

It seems that your patch hasn't been updated to ToT?
Specifically, I was looking for how this impacts -mcpu=generic, but it seems your patch doesn't have the changes from D33836.
I wonder if this would regress the fusion for -mcpu=generic?

Thanks,

Kristof

fhahn resigned from this revision.Dec 15 2017, 12:35 PM