[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