[llvm] r247315 - [SPARC] Switch to the Machine Scheduler.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 10 11:31:54 PDT 2015


On Thu, Sep 10, 2015 at 11:20 AM, James Y Knight via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: jyknight
> Date: Thu Sep 10 13:20:45 2015
> New Revision: 247315
>
> URL: http://llvm.org/viewvc/llvm-project?rev=247315&view=rev
> Log:
> [SPARC] Switch to the Machine Scheduler.
>
> The (mostly-deprecated) SelectionDAG-based ILPListDAGScheduler scheduler
> was making poor scheduling decisions, causing high register pressure and
> extraneous register spills.
>
> Switching to the newer machine scheduler generates better code -- even
> without there being a machine model defined for SPARC yet.
>

Worth a (vaguely randomly chosen) test to demonstrate any of these
improvements?


>
> Modified:
>     llvm/trunk/lib/Target/Sparc/SparcSubtarget.cpp
>     llvm/trunk/lib/Target/Sparc/SparcSubtarget.h
>
> Modified: llvm/trunk/lib/Target/Sparc/SparcSubtarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcSubtarget.cpp?rev=247315&r1=247314&r2=247315&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Sparc/SparcSubtarget.cpp (original)
> +++ llvm/trunk/lib/Target/Sparc/SparcSubtarget.cpp Thu Sep 10 13:20:45 2015
> @@ -81,3 +81,7 @@ int SparcSubtarget::getAdjustedFrameSize
>    }
>    return frameSize;
>  }
> +
> +bool SparcSubtarget::enableMachineScheduler() const {
> +  return true;
> +}
>
> Modified: llvm/trunk/lib/Target/Sparc/SparcSubtarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcSubtarget.h?rev=247315&r1=247314&r2=247315&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Sparc/SparcSubtarget.h (original)
> +++ llvm/trunk/lib/Target/Sparc/SparcSubtarget.h Thu Sep 10 13:20:45 2015
> @@ -60,6 +60,8 @@ public:
>      return &TSInfo;
>    }
>
> +  bool enableMachineScheduler() const override;
> +
>    bool isV9() const { return IsV9; }
>    bool isVIS() const { return IsVIS; }
>    bool isVIS2() const { return IsVIS2; }
> @@ -85,7 +87,6 @@ public:
>    /// returns adjusted framesize which includes space for register window
>    /// spills and arguments.
>    int getAdjustedFrameSize(int stackSize) const;
> -
>  };
>
>  } // end namespace llvm
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150910/ac141598/attachment.html>


More information about the llvm-commits mailing list