[llvm] r184705 - Temporarily enable MI-Sched on X86.
Andrew Trick
atrick at apple.com
Wed Jun 26 22:27:15 PDT 2013
Sent from my iPhone
On Jun 25, 2013, at 3:19 PM, Tom Stellard <tom at stellard.net> wrote:
> On Mon, Jun 24, 2013 at 09:13:21AM -0000, Andrew Trick wrote:
>> Author: atrick
>> Date: Mon Jun 24 04:13:20 2013
>> New Revision: 184705
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=184705&view=rev
>> Log:
>> Temporarily enable MI-Sched on X86.
>>
>> Sorry for the unit test churn. I'll try to make the change permanently
>> next time.
>
> Hi Andy,
>
> This breaks a few piglit tests that we use for testing Mesa with the
> R600 backend. I've tracked the problem down to the R600 target registering
> its scheduler as the default using:
>
> MachineSchedRegistry::setDefault(createR600MachineScheduler);
>
> This is problematic, because the test program compiles code using the
> R600 target and then the X86_64 target, so it ends up using the R600
> scheduler on the X86_64 code, which does not work very well.
>
> I'm looking at MachineScheduler::runOnMachineFunction() where the
> scheduler is initialized, and I can't see any way to specify the scheduler
> other than using the global registry. Are we doing something wrong in
> the R600 backend, or will we need to make the default scheduler a
> property of the TargetSubtargetInfo class?
I see how this could happen. Actually not sure why we haven't noticed it yet.
Maybe the default scheduler factory should call a target hook. If the hook isn't implemented it falls back to creating a converging scheduler (I'm about to rename it "generic" scheduler).
I'll try to remember to add this before reenabling. If I forget, yell at me.
Andy
More information about the llvm-commits
mailing list