[llvm] r190919 - Fix X86 subtarget to not overwrite the autodetected features by calling InitMCProcessorInfo right after detecting them. Instead add a new function that only updates the scheduling model and call that.

Craig Topper craig.topper at gmail.com
Mon Sep 30 13:13:53 PDT 2013


I should mention it only messed up FeatureBits and not the individual HasX
bits. And almost no code uses the FeatureBits. Everything uses the HasX
flags in subtarget.


On Mon, Sep 30, 2013 at 1:09 PM, Craig Topper <craig.topper at gmail.com>wrote:

> How do you test autodetected features given that it would be on a
> different processor based on the buildbot pool?
>
>
> On Mon, Sep 30, 2013 at 12:21 PM, Rafael EspĂ­ndola <
> rafael.espindola at gmail.com> wrote:
>
>> testcase?
>>
>> On 18 September 2013 01:54, Craig Topper <craig.topper at gmail.com> wrote:
>> > Author: ctopper
>> > Date: Wed Sep 18 00:54:09 2013
>> > New Revision: 190919
>> >
>> > URL: http://llvm.org/viewvc/llvm-project?rev=190919&view=rev
>> > Log:
>> > Fix X86 subtarget to not overwrite the autodetected features by calling
>> InitMCProcessorInfo right after detecting them. Instead add a new function
>> that only updates the scheduling model and call that.
>> >
>> > Modified:
>> >     llvm/trunk/include/llvm/MC/MCSubtargetInfo.h
>> >     llvm/trunk/lib/MC/MCSubtargetInfo.cpp
>> >     llvm/trunk/lib/Target/X86/X86Subtarget.cpp
>> >
>> > Modified: llvm/trunk/include/llvm/MC/MCSubtargetInfo.h
>> > URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCSubtargetInfo.h?rev=190919&r1=190918&r2=190919&view=diff
>> >
>> ==============================================================================
>> > --- llvm/trunk/include/llvm/MC/MCSubtargetInfo.h (original)
>> > +++ llvm/trunk/include/llvm/MC/MCSubtargetInfo.h Wed Sep 18 00:54:09
>> 2013
>> > @@ -72,6 +72,9 @@ public:
>> >    /// feature string). Recompute feature bits and scheduling model.
>> >    void InitMCProcessorInfo(StringRef CPU, StringRef FS);
>> >
>> > +  /// InitCPUSchedModel - Recompute scheduling model based on CPU.
>> > +  void InitCPUSchedModel(StringRef CPU);
>> > +
>> >    /// ToggleFeature - Toggle a feature and returns the re-computed
>> feature
>> >    /// bits. This version does not change the implied bits.
>> >    uint64_t ToggleFeature(uint64_t FB);
>> >
>> > Modified: llvm/trunk/lib/MC/MCSubtargetInfo.cpp
>> > URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSubtargetInfo.cpp?rev=190919&r1=190918&r2=190919&view=diff
>> >
>> ==============================================================================
>> > --- llvm/trunk/lib/MC/MCSubtargetInfo.cpp (original)
>> > +++ llvm/trunk/lib/MC/MCSubtargetInfo.cpp Wed Sep 18 00:54:09 2013
>> > @@ -27,6 +27,11 @@ MCSubtargetInfo::InitMCProcessorInfo(Str
>> >    FeatureBits = Features.getFeatureBits(CPU, ProcDesc, NumProcs,
>> >                                          ProcFeatures, NumFeatures);
>> >
>> > +  InitCPUSchedModel(CPU);
>> > +}
>> > +
>> > +void
>> > +MCSubtargetInfo::InitCPUSchedModel(StringRef CPU) {
>> >    if (!CPU.empty())
>> >      CPUSchedModel = getSchedModelForCPU(CPU);
>> >    else
>> >
>> > Modified: llvm/trunk/lib/Target/X86/X86Subtarget.cpp
>> > URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.cpp?rev=190919&r1=190918&r2=190919&view=diff
>> >
>> ==============================================================================
>> > --- llvm/trunk/lib/Target/X86/X86Subtarget.cpp (original)
>> > +++ llvm/trunk/lib/Target/X86/X86Subtarget.cpp Wed Sep 18 00:54:09 2013
>> > @@ -453,7 +453,7 @@ void X86Subtarget::resetSubtargetFeature
>> >
>> >    // CPUName may have been set by the CPU detection code. Make sure the
>> >    // new MCSchedModel is used.
>> > -  InitMCProcessorInfo(CPUName, FS);
>> > +  InitCPUSchedModel(CPUName);
>> >
>> >    if (X86ProcFamily == IntelAtom || X86ProcFamily == IntelSLM)
>> >      PostRAScheduler = true;
>> >
>> >
>> > _______________________________________________
>> > llvm-commits mailing list
>> > llvm-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
>
> --
> ~Craig
>



-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130930/7d8faae0/attachment.html>


More information about the llvm-commits mailing list