Many supported cores implement fusion of AES instructions.
authorWilco Dijkstra <wdijkstr@arm.com>
Wed, 22 Mar 2017 17:51:12 +0000 (17:51 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Wed, 22 Mar 2017 17:51:12 +0000 (17:51 +0000)
Many supported cores implement fusion of AES instructions.  When fusion
happens it can give a significant performance gain.  If not, scheduling
fusion candidates next to each other has almost no effect on performance.
Due to the high benefit/low cost it makes sense to enable AES fusion with
-mcpu=generic so that cores that support it always benefit.

    gcc/
* config/aarch64/aarch64.c (generic_tunings): Add AES fusion.

From-SVN: r246395

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index eaf765086213b14f7734ed3ec38e83bbc216f305..a4d5a9a560e897e77abc2f08c303b85635e6996b 100644 (file)
@@ -1,3 +1,7 @@
+2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
+
 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
 
        PR target/80123
index a069427f576f6bd7336bbe4497249773bd33d138..eb0095d6b6d3ed515b41c42a29d397d3aad661f4 100644 (file)
@@ -536,7 +536,7 @@ static const struct tune_params generic_tunings =
   &generic_approx_modes,
   4, /* memmov_cost  */
   2, /* issue_rate  */
-  AARCH64_FUSE_NOTHING, /* fusible_ops  */
+  (AARCH64_FUSE_AES_AESMC), /* fusible_ops  */
   8,   /* function_align.  */
   8,   /* jump_align.  */
   4,   /* loop_align.  */