MachineScheduler: Export function to construct "default" scheduler.
authorMatthias Braun <matze@braunis.de>
Mon, 28 Nov 2016 20:11:54 +0000 (20:11 +0000)
committerMatthias Braun <matze@braunis.de>
Mon, 28 Nov 2016 20:11:54 +0000 (20:11 +0000)
commit115efcd3d12e3617d0a2ee02499b379c67c2c5cb
tree930609a23320767934c1b6ecabb557c6ccb22984
parenta88e8358afb552aaadc3bf0aa4f76805a9d2b9ac
MachineScheduler: Export function to construct "default" scheduler.

This makes the createGenericSchedLive() function that constructs the
default scheduler available for the public API. This should help when
you want to get a scheduler and the default list of DAG mutations.

This also shrinks the list of default DAG mutations:
{Load|Store}ClusterDAGMutation and MacroFusionDAGMutation are no longer
added by default. Targets can easily add them if they need them. It also
makes it easier for targets to add alternative/custom macrofusion or
clustering mutations while staying with the default
createGenericSchedLive(). It also saves the callback back and forth in
TargetInstrInfo::enableClusterLoads()/enableClusterStores().

Differential Revision: https://reviews.llvm.org/D26986

llvm-svn: 288057
12 files changed:
llvm/include/llvm/CodeGen/MachineScheduler.h
llvm/include/llvm/Target/TargetInstrInfo.h
llvm/lib/CodeGen/MachineScheduler.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.h
llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/lib/Target/X86/X86InstrInfo.h
llvm/lib/Target/X86/X86TargetMachine.cpp