[llvm-dev] Performance degradation on ARMv7 (cortex-a9)
Grang, Mandeep Singh via llvm-dev
llvm-dev at lists.llvm.org
Tue Feb 23 19:15:32 PST 2016
I was doing some performance analysis for ARMv7 (cortex-a9) and I
noticed that one of my benchmarks degraded by 93%. I have tracked the
regression down to the following commit by you:
//Author: Bradley Smith <bradley.smith at arm.com>//
//Date: Mon Nov 16 11:10:19 2015 +0000//
// [ARM] Introduce subtarget features per ARM architecture.//
// This allows for accurate architecture targeting as well as removing//
// duplicate information (hardcoded feature strings) from MCTargetDesc./
I see that in lib/Target/ARM/ARM.td all the features have been removed
from Proc definition (e.g.: ProcA9) and added to ProcessorModel
definition (e.g.: ProcessorModel<"cortex-a9").
But I find that the features from Proc are still being read and set in
MCSubtargetInfo through the ARMFeatureKV table. So if the Proc is empty
the corresponding feature is not being set.
In my case, if I add FeatureFP16 back to the ProcA9 definition in ARM.td
I get back all the lost performance.
Could you please give me some insight on how, after your change, do the
Proc features get correctly set in MCSubtargetInfo and other places
which access Proc?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev