[PATCH] D33836: [AArch64] Enable FeatureFuseAES for the generic processor model.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 2 08:38:58 PDT 2017


fhahn created this revision.
Herald added a subscriber: aemerson.

Scheduling AESE/AESMC and AESD/AESIMC instruction pairs back-to-back
gives a double digit speedup on benchmarks using those instructions on
Cortex-A processors. In GCC, this optimization is part of the generic
processor model as well.

This change should not have a major performance impact on processors
that do not optimize AES instruction pairs, although I only had access
to Cortex-A processors for benchmarking.


https://reviews.llvm.org/D33836

Files:
  lib/Target/AArch64/AArch64.td
  test/CodeGen/AArch64/misched-fusion-aes.ll


Index: test/CodeGen/AArch64/misched-fusion-aes.ll
===================================================================
--- test/CodeGen/AArch64/misched-fusion-aes.ll
+++ test/CodeGen/AArch64/misched-fusion-aes.ll
@@ -1,3 +1,4 @@
+; RUN: llc %s -o - -mtriple=aarch64-unknown -mcpu=generic -mattr=+crypto | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKCORTEX
 ; RUN: llc %s -o - -mtriple=aarch64-unknown -mcpu=cortex-a53 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKCORTEX
 ; RUN: llc %s -o - -mtriple=aarch64-unknown -mcpu=cortex-a57 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKCORTEX
 ; RUN: llc %s -o - -mtriple=aarch64-unknown -mcpu=cortex-a72 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKCORTEX
Index: lib/Target/AArch64/AArch64.td
===================================================================
--- lib/Target/AArch64/AArch64.td
+++ lib/Target/AArch64/AArch64.td
@@ -362,6 +362,7 @@
 
 def : ProcessorModel<"generic", NoSchedModel, [
                      FeatureFPARMv8,
+                     FeatureFuseAES,
                      FeatureNEON,
                      FeaturePerfMon,
                      FeaturePostRAScheduler


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33836.101219.patch
Type: text/x-patch
Size: 1178 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170602/2532ffe3/attachment.bin>


More information about the llvm-commits mailing list