[llvm] r316036 - AArch64: Enable AES instruction fusion on Cyclone.

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 17 14:46:16 PDT 2017


Author: matze
Date: Tue Oct 17 14:46:15 2017
New Revision: 316036

URL: http://llvm.org/viewvc/llvm-project?rev=316036&view=rev
Log:
AArch64: Enable AES instruction fusion on Cyclone.

Note that cyclone itself doesn't fuse, but newer apple chips do and we
are using cyclone as the default when targeting apple OSes.

The current code also does not capture all fusion patterns of apple CPUs
yet; I am still looking for ways to refactor the code nicely to extend
it.

Modified:
    llvm/trunk/lib/Target/AArch64/AArch64.td

Modified: llvm/trunk/lib/Target/AArch64/AArch64.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64.td?rev=316036&r1=316035&r2=316036&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64.td (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64.td Tue Oct 17 14:46:15 2017
@@ -274,14 +274,17 @@ def ProcA75     : SubtargetFeature<"a75"
                                    FeaturePerfMon
                                    ]>;
 
+// Note that cyclone does not fuse AES instructions, but newer apple chips do
+// perform the fusion and cyclone is used by default when targetting apple OSes.
 def ProcCyclone : SubtargetFeature<"cyclone", "ARMProcFamily", "Cyclone",
                                    "Cyclone", [
                                    FeatureAlternateSExtLoadCVTF32Pattern,
+                                   FeatureArithmeticBccFusion,
+                                   FeatureArithmeticCbzFusion,
                                    FeatureCrypto,
                                    FeatureDisableLatencySchedHeuristic,
                                    FeatureFPARMv8,
-                                   FeatureArithmeticBccFusion,
-                                   FeatureArithmeticCbzFusion,
+                                   FeatureFuseAES,
                                    FeatureNEON,
                                    FeaturePerfMon,
                                    FeatureSlowMisaligned128Store,




More information about the llvm-commits mailing list