summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
diff options
context:
space:
mode:
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2017-09-20 04:25:58 +0000
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2017-09-20 04:25:58 +0000
commit5670e6d482b445cdf5c8e1166828b20a02416d10 (patch)
tree111b9dab27a4dc121d3fbcfbcdbe171776fb98aa /llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
parentbc683831668e63a8f01f7f442d5ec01f02cf49cb (diff)
downloadbcm5719-llvm-5670e6d482b445cdf5c8e1166828b20a02416d10.tar.gz
bcm5719-llvm-5670e6d482b445cdf5c8e1166828b20a02416d10.zip
[AMDGPU] Port of HSAIL inliner
Differential Revision: https://reviews.llvm.org/D36849 llvm-svn: 313714
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 284f44a6232..212adbce68b 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -179,6 +179,7 @@ extern "C" void LLVMInitializeAMDGPUTarget() {
initializeAMDGPUAAWrapperPassPass(*PR);
initializeAMDGPUUseNativeCallsPass(*PR);
initializeAMDGPUSimplifyLibCallsPass(*PR);
+ initializeAMDGPUInlinerPass(*PR);
}
static std::unique_ptr<TargetLoweringObjectFile> createTLOF(const Triple &TT) {
@@ -332,10 +333,12 @@ void AMDGPUTargetMachine::adjustPassManager(PassManagerBuilder &Builder) {
bool EnableOpt = getOptLevel() > CodeGenOpt::None;
bool Internalize = InternalizeSymbols;
- bool EarlyInline = EarlyInlineAll && EnableOpt;
+ bool EarlyInline = EarlyInlineAll && EnableOpt && !EnableAMDGPUFunctionCalls;
bool AMDGPUAA = EnableAMDGPUAliasAnalysis && EnableOpt;
bool LibCallSimplify = EnableLibCallSimplify && EnableOpt;
+ Builder.Inliner = createAMDGPUFunctionInliningPass();
+
if (Internalize) {
// If we're generating code, we always have the whole program available. The
// relocations expected for externally visible functions aren't supported,
OpenPOWER on IntegriCloud