[PATCH] D28152: Cortex-A57 scheduling model for ARM backend (AArch32)

James Greenhalgh via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 12 08:01:54 PST 2017


jgreenhalgh added inline comments.


================
Comment at: lib/Target/ARM/ARM.td:783
 
-def : ProcNoItin<"cortex-a57",                          [ARMv8a, ProcA57,
+def : ProcessorModel<"cortex-a57-r0px", CortexA57Model, [ARMv8a, ProcA57,
+                                                         FeatureHWDiv,
----------------
I'm not sure that splitting the option like this is a good idea, certainly this would create an incompatibility with GCC, which does not recognise -mcpu=cortex-a57-r0px. In GCC -mcpu=cortex-a57 enables scheduling for all the optimized instruction pairs (e.g. MOV/MOVT), and uses the r0p0 latency values for the Advanced SIMD multiply accumulate instructions.

In your patch, this extra flag changes the scheduling of vector multiply, multiply accumulate, and the mov/movt instructions. While I can see that this can improve the resulting schedule in some circumstances, my opinion is that fragmenting the option like this is not worth the extra cost of carrying a special option.


https://reviews.llvm.org/D28152





More information about the llvm-commits mailing list