<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
     Hi Bradley,<br>
    <br>
    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:<br>
    <i><br>
    </i><i>commit 7c1b77248baaeafec5d6433c3d1da9a2e2b69595</i><i><br>
    </i><i>Author: Bradley Smith <a moz-do-not-send="true"
        class="moz-txt-link-rfc2396E"
        href="mailto:bradley.smith@arm.com"><bradley.smith@arm.com></a></i><i><br>
    </i><i>Date:   Mon Nov 16 11:10:19 2015 +0000</i><i><br>
    </i><i>    [ARM] Introduce subtarget features per ARM architecture.</i><i><br>
    </i><i>    This allows for accurate architecture targeting as well
      as removing</i><i><br>
    </i><i>    duplicate information (hardcoded feature strings) from
      MCTargetDesc.</i><br>
    <br>
    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").<br>
    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.<br>
    In my case, if I add FeatureFP16 back to the ProcA9 definition in
    ARM.td I get back all the lost performance.<br>
    <br>
    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?<br>
    <br>
    Thanks,<br>
    Mandeep<br>
  </body>
</html>