From 8309f8b873cc332718dbbd6e37bb5c0f65559e13 Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Mon, 4 Jan 2021 13:47:07 -0800 Subject: [PATCH] [NewPM][AMDGPU] Pass TargetMachine to AMDGPUSimplifyLibCallsPass Missed in https://reviews.llvm.org/D93863. --- lib/Target/AMDGPU/AMDGPU.h | 4 ++++ lib/Target/AMDGPU/AMDGPULibCalls.cpp | 2 +- lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 4 ++-- test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/Target/AMDGPU/AMDGPU.h b/lib/Target/AMDGPU/AMDGPU.h index 503f1022bda..5d2189c87a1 100644 --- a/lib/Target/AMDGPU/AMDGPU.h +++ b/lib/Target/AMDGPU/AMDGPU.h @@ -77,7 +77,11 @@ FunctionPass *createAMDGPURewriteOutArgumentsPass(); FunctionPass *createSIModeRegisterPass(); struct AMDGPUSimplifyLibCallsPass : PassInfoMixin { + AMDGPUSimplifyLibCallsPass(TargetMachine &TM) : TM(TM) {} PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); + +private: + TargetMachine &TM; }; struct AMDGPUUseNativeCallsPass : PassInfoMixin { diff --git a/lib/Target/AMDGPU/AMDGPULibCalls.cpp b/lib/Target/AMDGPU/AMDGPULibCalls.cpp index eedcb2e1a79..c4d27f0a19d 100644 --- a/lib/Target/AMDGPU/AMDGPULibCalls.cpp +++ b/lib/Target/AMDGPU/AMDGPULibCalls.cpp @@ -1753,7 +1753,7 @@ bool AMDGPUSimplifyLibCalls::runOnFunction(Function &F) { PreservedAnalyses AMDGPUSimplifyLibCallsPass::run(Function &F, FunctionAnalysisManager &AM) { - AMDGPULibCalls Simplifier; + AMDGPULibCalls Simplifier(&TM); Simplifier.initNativeFuncs(); bool Changed = false; diff --git a/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index 7e9a0ddc0fc..be7d86d02fb 100644 --- a/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -520,7 +520,7 @@ void AMDGPUTargetMachine::registerPassBuilderCallbacks(PassBuilder &PB, [this](StringRef PassName, FunctionPassManager &PM, ArrayRef) { if (PassName == "amdgpu-simplifylib") { - PM.addPass(AMDGPUSimplifyLibCallsPass()); + PM.addPass(AMDGPUSimplifyLibCallsPass(*this)); return true; } if (PassName == "amdgpu-usenative") { @@ -566,7 +566,7 @@ void AMDGPUTargetMachine::registerPassBuilderCallbacks(PassBuilder &PB, FPM.addPass(AMDGPUPropagateAttributesEarlyPass(*this)); FPM.addPass(AMDGPUUseNativeCallsPass()); if (EnableLibCallSimplify && Level != PassBuilder::OptimizationLevel::O0) - FPM.addPass(AMDGPUSimplifyLibCallsPass()); + FPM.addPass(AMDGPUSimplifyLibCallsPass(*this)); PM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM))); }); diff --git a/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll b/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll index 0ae7d45454e..40bb45de25f 100644 --- a/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll +++ b/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll @@ -5,6 +5,7 @@ ; RUN: opt -O3 -S < %s | FileCheck -check-prefixes=OPT,OPT-WXX %s ; RUN: opt -mtriple=amdgcn-- -O3 -S < %s | FileCheck -check-prefixes=OPT,OPT-WXX %s ; RUN: opt -mtriple=amdgcn-- -O3 -mattr=+wavefrontsize32 -S < %s | FileCheck -check-prefixes=OPT,OPT-W32 %s +; RUN: opt -mtriple=amdgcn-- -passes='default' -mattr=+wavefrontsize32 -S < %s | FileCheck -check-prefixes=OPT,OPT-W32 %s ; RUN: opt -mtriple=amdgcn-- -O3 -mattr=+wavefrontsize64 -S < %s | FileCheck -check-prefixes=OPT,OPT-W64 %s ; RUN: opt -mtriple=amdgcn-- -mcpu=tonga -O3 -S < %s | FileCheck -check-prefixes=OPT,OPT-W64 %s ; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1010 -O3 -mattr=+wavefrontsize32,-wavefrontsize64 -S < %s | FileCheck -check-prefixes=OPT,OPT-W32 %s