From 6d07c2845807a3b151ddbaeb2e962611479fa097 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Mon, 30 Jan 2017 18:40:29 +0000 Subject: [PATCH] AMDGPU: Run AMDGPUCodeGenPrepare after inlining With leaf functions, this makes nonsensical decisions based on the uniformity of the arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293525 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index e4f693267e2..9cc30a8545c 100644 --- a/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -367,7 +367,6 @@ public: ScheduleDAGInstrs * createMachineScheduler(MachineSchedContext *C) const override; - void addIRPasses() override; bool addPreISel() override; void addMachineSSAOptimization() override; bool addILPOpts() override; @@ -433,10 +432,18 @@ void AMDGPUPassConfig::addIRPasses() { // without ever running any passes on the second. addPass(createBarrierNoopPass()); + const AMDGPUTargetMachine &TM = getAMDGPUTargetMachine(); + + if (TM.getTargetTriple().getArch() == Triple::amdgcn) { + // TODO: May want to move later or split into an early and late one. + + addPass(createAMDGPUCodeGenPreparePass( + static_cast(&TM))); + } + // Handle uses of OpenCL image2d_t, image3d_t and sampler_t arguments. addPass(createAMDGPUOpenCLImageTypeLoweringPass()); - const AMDGPUTargetMachine &TM = getAMDGPUTargetMachine(); if (TM.getOptLevel() > CodeGenOpt::None) { addPass(createAMDGPUPromoteAlloca(&TM)); @@ -571,13 +578,6 @@ bool GCNPassConfig::addILPOpts() { return false; } -void GCNPassConfig::addIRPasses() { - // TODO: May want to move later or split into an early and late one. - addPass(createAMDGPUCodeGenPreparePass(&getGCNTargetMachine())); - - AMDGPUPassConfig::addIRPasses(); -} - bool GCNPassConfig::addInstSelector() { AMDGPUPassConfig::addInstSelector(); addPass(createSILowerI1CopiesPass()); -- 2.40.0