llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-arm Author: Frederik Harwath (frederik-h) <details> <summary>Changes</summary> The pass now contains a non-fp expansion and should be used for any similar expansions regardless of the types involved. Hence a generic name seems apt. Rename the source files, pass, and adjust the pass description. Move all tests for the expansions that have previously been merged into the pass to a single directory. --- Patch is 67.80 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/172681.diff 52 Files Affected: - (modified) llvm/docs/WritingAnLLVMPass.rst (+1-1) - (renamed) llvm/include/llvm/CodeGen/ExpandIRInsts.h (+6-6) - (modified) llvm/include/llvm/CodeGen/Passes.h (+2-2) - (modified) llvm/include/llvm/CodeGen/TargetLowering.h (+6-6) - (modified) llvm/include/llvm/InitializePasses.h (+1-1) - (modified) llvm/include/llvm/Passes/CodeGenPassBuilder.h (+2-2) - (modified) llvm/lib/CodeGen/CMakeLists.txt (+1-1) - (modified) llvm/lib/CodeGen/CodeGen.cpp (+1-1) - (renamed) llvm/lib/CodeGen/ExpandIRInsts.cpp (+33-23) - (modified) llvm/lib/CodeGen/TargetPassConfig.cpp (+1-1) - (modified) llvm/lib/Passes/PassBuilder.cpp (+4-4) - (modified) llvm/lib/Passes/PassRegistry.def (+3-3) - (modified) llvm/test/CodeGen/AArch64/O0-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/AArch64/O3-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/AMDGPU/dagcombine-select.ll (+2-2) - (modified) llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll (+1-1) - (modified) llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll (+3-3) - (modified) llvm/test/CodeGen/AMDGPU/llc-pipeline.ll (+5-5) - (modified) llvm/test/CodeGen/ARM/O3-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/LoongArch/O0-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/LoongArch/opt-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/M68k/pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/PowerPC/O0-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/PowerPC/O3-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/RISCV/O0-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/RISCV/O3-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/SPIRV/llc-pipeline.ll (+2-2) - (modified) llvm/test/CodeGen/X86/O0-pipeline.ll (+1-1) - (modified) llvm/test/CodeGen/X86/expand-large-fp-optnone.ll (+1-1) - (modified) llvm/test/CodeGen/X86/opt-pipeline.ll (+1-1) - (removed) llvm/test/Transforms/ExpandFp/AMDGPU/pass-parameters.ll (-20) - (renamed) llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem-inf.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem.ll (+1-1) - (renamed) llvm/test/Transforms/ExpandIRInsts/AMDGPU/lit.local.cfg () - (renamed) llvm/test/Transforms/ExpandIRInsts/AMDGPU/missing-analysis.ll (+1-1) - (added) llvm/test/Transforms/ExpandIRInsts/AMDGPU/pass-parameters.ll (+20) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-fptosi129.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-fptoui129.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-si129tofp.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-ui129tofp.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-optnone.ll (+3-3) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/lit.local.cfg () - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/sdiv129.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/srem129.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/udiv129.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/urem129.ll (+2-2) - (renamed) llvm/test/Transforms/ExpandIRInsts/X86/vector.ll (+2-2) - (removed) llvm/test/Transforms/ExpandLargeFpConvert/X86/lit.local.cfg (-2) - (modified) llvm/test/tools/opt/no-target-machine.ll (+2-2) - (modified) llvm/tools/opt/optdriver.cpp (+2-2) - (modified) llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn (+1-1) - (modified) llvm/utils/profcheck-xfail.txt (+9-9) ``````````diff diff --git a/llvm/docs/WritingAnLLVMPass.rst b/llvm/docs/WritingAnLLVMPass.rst index f475676e15367..216e693087d96 100644 --- a/llvm/docs/WritingAnLLVMPass.rst +++ b/llvm/docs/WritingAnLLVMPass.rst @@ -673,7 +673,7 @@ default optimization pipelines, e.g. (the output has been trimmed): ModulePass Manager Pre-ISel Intrinsic Lowering FunctionPass Manager - Expand fp + Expand IR instructions Expand Atomic instructions SVE intrinsics optimizations FunctionPass Manager diff --git a/llvm/include/llvm/CodeGen/ExpandFp.h b/llvm/include/llvm/CodeGen/ExpandIRInsts.h similarity index 68% rename from llvm/include/llvm/CodeGen/ExpandFp.h rename to llvm/include/llvm/CodeGen/ExpandIRInsts.h index 28e6aecc2beb5..5d3fcf75cd530 100644 --- a/llvm/include/llvm/CodeGen/ExpandFp.h +++ b/llvm/include/llvm/CodeGen/ExpandIRInsts.h @@ -1,4 +1,4 @@ -//===- ExpandFp.h -----------------------------------*- C++ -*-===// +//===- ExpandIRInsts.h -----------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CODEGEN_EXPANDFP_H -#define LLVM_CODEGEN_EXPANDFP_H +#ifndef LLVM_CODEGEN_EXPANDIRINSTS_H +#define LLVM_CODEGEN_EXPANDIRINSTS_H #include "llvm/IR/PassManager.h" #include "llvm/Support/CodeGen.h" @@ -16,13 +16,13 @@ namespace llvm { class TargetMachine; -class ExpandFpPass : public PassInfoMixin<ExpandFpPass> { +class ExpandIRInstsPass : public PassInfoMixin<ExpandIRInstsPass> { private: const TargetMachine *TM; CodeGenOptLevel OptLevel; public: - explicit ExpandFpPass(const TargetMachine &TM, CodeGenOptLevel OptLevel); + explicit ExpandIRInstsPass(const TargetMachine &TM, CodeGenOptLevel OptLevel); PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); static bool isRequired() { return true; } @@ -32,4 +32,4 @@ class ExpandFpPass : public PassInfoMixin<ExpandFpPass> { } // end namespace llvm -#endif // LLVM_CODEGEN_EXPANDFP_H +#endif // LLVM_CODEGEN_EXPANDIRINSTS_H diff --git a/llvm/include/llvm/CodeGen/Passes.h b/llvm/include/llvm/CodeGen/Passes.h index 08dabd69a48e9..fe19e6a32c680 100644 --- a/llvm/include/llvm/CodeGen/Passes.h +++ b/llvm/include/llvm/CodeGen/Passes.h @@ -547,7 +547,7 @@ LLVM_ABI FunctionPass *createExpandReductionsPass(); LLVM_ABI FunctionPass *createReplaceWithVeclibLegacyPass(); // Expands large div/rem instructions. -LLVM_ABI FunctionPass *createExpandFpPass(); +LLVM_ABI FunctionPass *createExpandIRInstsPass(); // This pass expands memcmp() to load/stores. LLVM_ABI FunctionPass *createExpandMemCmpLegacyPass(); @@ -565,7 +565,7 @@ LLVM_ABI FunctionPass *createCFIFixup(); LLVM_ABI FunctionPass *createCFIInstrInserter(); // Expands floating point instructions. -FunctionPass *createExpandFpPass(CodeGenOptLevel); +FunctionPass *createExpandIRInstsPass(CodeGenOptLevel); /// Creates CFGuard longjmp target identification pass. /// \see CFGuardLongjmp.cpp diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h index 06bc5caefd063..8ad64a852b74d 100644 --- a/llvm/include/llvm/CodeGen/TargetLowering.h +++ b/llvm/include/llvm/CodeGen/TargetLowering.h @@ -2220,13 +2220,13 @@ class LLVM_ABI TargetLoweringBase { } /// Returns the size in bits of the maximum div/rem the backend supports. - /// Larger operations will be expanded by ExpandFp. + /// Larger operations will be expanded by ExpandIRInsts. unsigned getMaxDivRemBitWidthSupported() const { return MaxDivRemBitWidthSupported; } /// Returns the size in bits of the maximum fp to/from int conversion the - /// backend supports. Larger operations will be expanded by ExpandFp. + /// backend supports. Larger operations will be expanded by ExpandIRInsts. unsigned getMaxLargeFPConvertBitWidthSupported() const { return MaxLargeFPConvertBitWidthSupported; } @@ -2886,13 +2886,13 @@ class LLVM_ABI TargetLoweringBase { } /// Set the size in bits of the maximum div/rem the backend supports. - /// Larger operations will be expanded by ExpandFp. + /// Larger operations will be expanded by ExpandIRInsts. void setMaxDivRemBitWidthSupported(unsigned SizeInBits) { MaxDivRemBitWidthSupported = SizeInBits; } /// Set the size in bits of the maximum fp to/from int conversion the backend - /// supports. Larger operations will be expanded by ExpandFp. + /// supports. Larger operations will be expanded by ExpandIRInsts. void setMaxLargeFPConvertBitWidthSupported(unsigned SizeInBits) { MaxLargeFPConvertBitWidthSupported = SizeInBits; } @@ -3743,12 +3743,12 @@ class LLVM_ABI TargetLoweringBase { unsigned MaxAtomicSizeInBitsSupported; /// Size in bits of the maximum div/rem size the backend supports. - /// Larger operations will be expanded by ExpandFp. + /// Larger operations will be expanded by ExpandIRInsts. unsigned MaxDivRemBitWidthSupported; /// Size in bits of the maximum fp to/from int conversion size the /// backend supports. Larger operations will be expanded by - /// ExpandFp. + /// ExpandIRInsts. unsigned MaxLargeFPConvertBitWidthSupported; /// Size in bits of the minimum cmpxchg or ll/sc operation the diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index b4f96674bea9e..2bc00a2f71e1a 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -112,7 +112,7 @@ LLVM_ABI void initializeEarlyMachineLICMPass(PassRegistry &); LLVM_ABI void initializeEarlyTailDuplicateLegacyPass(PassRegistry &); LLVM_ABI void initializeEdgeBundlesWrapperLegacyPass(PassRegistry &); LLVM_ABI void initializeEHContGuardTargetsPass(PassRegistry &); -LLVM_ABI void initializeExpandFpLegacyPassPass(PassRegistry &); +LLVM_ABI void initializeExpandIRInstsLegacyPassPass(PassRegistry &); LLVM_ABI void initializeExpandMemCmpLegacyPassPass(PassRegistry &); LLVM_ABI void initializeExpandPostRALegacyPass(PassRegistry &); LLVM_ABI void initializeExpandReductionsPass(PassRegistry &); diff --git a/llvm/include/llvm/Passes/CodeGenPassBuilder.h b/llvm/include/llvm/Passes/CodeGenPassBuilder.h index 0462adb835d89..9bf8e1976fad8 100644 --- a/llvm/include/llvm/Passes/CodeGenPassBuilder.h +++ b/llvm/include/llvm/Passes/CodeGenPassBuilder.h @@ -32,7 +32,7 @@ #include "llvm/CodeGen/DetectDeadLanes.h" #include "llvm/CodeGen/DwarfEHPrepare.h" #include "llvm/CodeGen/EarlyIfConversion.h" -#include "llvm/CodeGen/ExpandFp.h" +#include "llvm/CodeGen/ExpandIRInsts.h" #include "llvm/CodeGen/ExpandMemCmp.h" #include "llvm/CodeGen/ExpandPostRAPseudos.h" #include "llvm/CodeGen/ExpandReductions.h" @@ -677,7 +677,7 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addISelPasses( addModulePass(LowerEmuTLSPass(), PMW); addModulePass(PreISelIntrinsicLoweringPass(&TM), PMW); - addFunctionPass(ExpandFpPass(TM, getOptLevel()), PMW); + addFunctionPass(ExpandIRInstsPass(TM, getOptLevel()), PMW); derived().addIRPasses(PMW); derived().addCodeGenPrepare(PMW); diff --git a/llvm/lib/CodeGen/CMakeLists.txt b/llvm/lib/CodeGen/CMakeLists.txt index 8c9b172c0da65..871934ea4b76e 100644 --- a/llvm/lib/CodeGen/CMakeLists.txt +++ b/llvm/lib/CodeGen/CMakeLists.txt @@ -57,7 +57,7 @@ add_llvm_component_library(LLVMCodeGen EdgeBundles.cpp EHContGuardTargets.cpp ExecutionDomainFix.cpp - ExpandFp.cpp + ExpandIRInsts.cpp ExpandMemCmp.cpp ExpandPostRAPseudos.cpp ExpandReductions.cpp diff --git a/llvm/lib/CodeGen/CodeGen.cpp b/llvm/lib/CodeGen/CodeGen.cpp index 47633f89b70e9..3550eea13979a 100644 --- a/llvm/lib/CodeGen/CodeGen.cpp +++ b/llvm/lib/CodeGen/CodeGen.cpp @@ -39,7 +39,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) { initializeEarlyIfPredicatorPass(Registry); initializeEarlyMachineLICMPass(Registry); initializeEarlyTailDuplicateLegacyPass(Registry); - initializeExpandFpLegacyPassPass(Registry); + initializeExpandIRInstsLegacyPassPass(Registry); initializeExpandMemCmpLegacyPassPass(Registry); initializeExpandPostRALegacyPass(Registry); initializeFEntryInserterLegacyPass(Registry); diff --git a/llvm/lib/CodeGen/ExpandFp.cpp b/llvm/lib/CodeGen/ExpandIRInsts.cpp similarity index 95% rename from llvm/lib/CodeGen/ExpandFp.cpp rename to llvm/lib/CodeGen/ExpandIRInsts.cpp index 395fef19a13b9..1d09000fbca6b 100644 --- a/llvm/lib/CodeGen/ExpandFp.cpp +++ b/llvm/lib/CodeGen/ExpandIRInsts.cpp @@ -1,26 +1,33 @@ -//===--- ExpandFp.cpp - Expand fp instructions ----------------------------===// +//===--- ExpandIRInsts.cpp - Expand IR instructions -----------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// This pass expands certain floating point instructions at the IR level. +// This pass expands certain instructions at the IR level. // -// It expands ‘fptoui .. to’, ‘fptosi .. to’, ‘uitofp .. to’, ‘sitofp +// The following expansions are implemented: +// - Expansion of ‘fptoui .. to’, ‘fptosi .. to’, ‘uitofp .. to’, ‘sitofp // .. to’ instructions with a bitwidth above a threshold. This is // useful for targets like x86_64 that cannot lower fp convertions // with more than 128 bits. // -// This pass also expands div/rem instructions with a bitwidth above a -// threshold into a call to auto-generated functions. This is useful -// for targets like x86_64 that cannot lower divisions with more than -// 128 bits or targets like x86_32 that cannot lower divisions with -// more than 64 bits. +// - Expansion of ‘frem‘ for types MVT::f16, MVT::f32, and MVT::f64 for +// targets which use "Expand" as the legalization action for the +// corresponding type. // +// - Expansion of ‘udiv‘, ‘sdiv‘, ‘urem‘, and ‘srem‘ instructions with +// a bitwidth above a threshold into a call to auto-generated +// functions. This is useful for targets like x86_64 that cannot +// lower divisions with more than 128 bits or targets like x86_32 that +// cannot lower divisions with more than 64 bits. +// +// Instructions with vector types are scalarized first if their scalar +// types can be expanded. Scalable vector types are not supported. //===----------------------------------------------------------------------===// -#include "llvm/CodeGen/ExpandFp.h" +#include "llvm/CodeGen/ExpandIRInsts.h" #include "llvm/ADT/SmallVector.h" #include "llvm/Analysis/AssumptionCache.h" #include "llvm/Analysis/GlobalsModRef.h" @@ -45,7 +52,7 @@ #include <llvm/Support/Casting.h> #include <optional> -#define DEBUG_TYPE "expand-fp" +#define DEBUG_TYPE "expand-ir-insts" using namespace llvm; @@ -1125,18 +1132,18 @@ static bool runImpl(Function &F, const TargetLowering &TLI, } namespace { -class ExpandFpLegacyPass : public FunctionPass { +class ExpandIRInstsLegacyPass : public FunctionPass { CodeGenOptLevel OptLevel; public: static char ID; - ExpandFpLegacyPass(CodeGenOptLevel OptLevel) + ExpandIRInstsLegacyPass(CodeGenOptLevel OptLevel) : FunctionPass(ID), OptLevel(OptLevel) { - initializeExpandFpLegacyPassPass(*PassRegistry::getPassRegistry()); + initializeExpandIRInstsLegacyPassPass(*PassRegistry::getPassRegistry()); } - ExpandFpLegacyPass() : ExpandFpLegacyPass(CodeGenOptLevel::None) {}; + ExpandIRInstsLegacyPass() : ExpandIRInstsLegacyPass(CodeGenOptLevel::None) {}; bool runOnFunction(Function &F) override { auto *TM = &getAnalysis<TargetPassConfig>().getTM<TargetMachine>(); @@ -1165,19 +1172,21 @@ class ExpandFpLegacyPass : public FunctionPass { }; } // namespace -ExpandFpPass::ExpandFpPass(const TargetMachine &TM, CodeGenOptLevel OptLevel) +ExpandIRInstsPass::ExpandIRInstsPass(const TargetMachine &TM, + CodeGenOptLevel OptLevel) : TM(&TM), OptLevel(OptLevel) {} -void ExpandFpPass::printPipeline( +void ExpandIRInstsPass::printPipeline( raw_ostream &OS, function_ref<StringRef(StringRef)> MapClassName2PassName) { - static_cast<PassInfoMixin<ExpandFpPass> *>(this)->printPipeline( + static_cast<PassInfoMixin<ExpandIRInstsPass> *>(this)->printPipeline( OS, MapClassName2PassName); OS << '<'; OS << "O" << (int)OptLevel; OS << '>'; } -PreservedAnalyses ExpandFpPass::run(Function &F, FunctionAnalysisManager &FAM) { +PreservedAnalyses ExpandIRInstsPass::run(Function &F, + FunctionAnalysisManager &FAM) { const TargetSubtargetInfo *STI = TM->getSubtargetImpl(F); auto &TLI = *STI->getTargetLowering(); AssumptionCache *AC = nullptr; @@ -1202,12 +1211,13 @@ PreservedAnalyses ExpandFpPass::run(Function &F, FunctionAnalysisManager &FAM) { : PreservedAnalyses::all(); } -char ExpandFpLegacyPass::ID = 0; -INITIALIZE_PASS_BEGIN(ExpandFpLegacyPass, "expand-fp", +char ExpandIRInstsLegacyPass::ID = 0; +INITIALIZE_PASS_BEGIN(ExpandIRInstsLegacyPass, "expand-ir-insts", "Expand certain fp instructions", false, false) INITIALIZE_PASS_DEPENDENCY(LibcallLoweringInfoWrapper) -INITIALIZE_PASS_END(ExpandFpLegacyPass, "expand-fp", "Expand fp", false, false) +INITIALIZE_PASS_END(ExpandIRInstsLegacyPass, "expand-ir-insts", + "Expand IR instructions", false, false) -FunctionPass *llvm::createExpandFpPass(CodeGenOptLevel OptLevel) { - return new ExpandFpLegacyPass(OptLevel); +FunctionPass *llvm::createExpandIRInstsPass(CodeGenOptLevel OptLevel) { + return new ExpandIRInstsLegacyPass(OptLevel); } diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index acceb66468409..ca75d3b47cf3a 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -1090,7 +1090,7 @@ bool TargetPassConfig::addISelPasses() { PM->add(createTargetTransformInfoWrapperPass(TM->getTargetIRAnalysis())); addPass(createPreISelIntrinsicLoweringPass()); - addPass(createExpandFpPass(getOptLevel())); + addPass(createExpandIRInstsPass(getOptLevel())); addIRPasses(); addCodeGenPrepare(); addPassesToHandleExceptions(); diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index d639c24664ad1..84ee043b5da56 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -91,7 +91,7 @@ #include "llvm/CodeGen/DwarfEHPrepare.h" #include "llvm/CodeGen/EarlyIfConversion.h" #include "llvm/CodeGen/EdgeBundles.h" -#include "llvm/CodeGen/ExpandFp.h" +#include "llvm/CodeGen/ExpandIRInsts.h" #include "llvm/CodeGen/ExpandMemCmp.h" #include "llvm/CodeGen/ExpandPostRAPseudos.h" #include "llvm/CodeGen/ExpandReductions.h" @@ -1632,7 +1632,7 @@ parseBoundsCheckingOptions(StringRef Params) { return Options; } -Expected<CodeGenOptLevel> parseExpandFpOptions(StringRef Param) { +Expected<CodeGenOptLevel> parseExpandIRInstsOptions(StringRef Param) { if (Param.empty()) return CodeGenOptLevel::None; @@ -1641,13 +1641,13 @@ Expected<CodeGenOptLevel> parseExpandFpOptions(StringRef Param) { uint8_t N; if (!Prefix.empty() || Digit.getAsInteger(10, N)) - return createStringError("invalid expand-fp pass parameter '%s'", + return createStringError("invalid expand-ir-insts pass parameter '%s'", Param.str().c_str()); std::optional<CodeGenOptLevel> Level = CodeGenOpt::getLevel(N); if (!Level.has_value()) return createStringError( - "invalid optimization level for expand-fp pass: %s", + "invalid optimization level for expand-ir-insts pass: %s", Digit.str().c_str()); return *Level; diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def index 14215bb32e777..daf6b3d6dbd28 100644 --- a/llvm/lib/Passes/PassRegistry.def +++ b/llvm/lib/Passes/PassRegistry.def @@ -729,11 +729,11 @@ FUNCTION_PASS_WITH_PARAMS( parseBoundsCheckingOptions, "trap;rt;rt-abort;min-rt;min-rt-abort;merge;guard=N") FUNCTION_PASS_WITH_PARAMS( - "expand-fp", "ExpandFpPass", + "expand-ir-insts", "ExpandIRInstsPass", [TM = TM](CodeGenOptLevel OL) { - return ExpandFpPass(*TM, OL); + return ExpandIRInstsPass(*TM, OL); }, - parseExpandFpOptions, "O0;O1;O2;O3") + parseExpandIRInstsOptions, "O0;O1;O2;O3") #undef FUNCTION_PASS_WITH_PARAMS diff --git a/llvm/test/CodeGen/AArch64/O0-pipeline.ll b/llvm/test/CodeGen/AArch64/O0-pipeline.ll index 2a1264446c70d..f4f9d38336608 100644 --- a/llvm/test/CodeGen/AArch64/O0-pipeline.ll +++ b/llvm/test/CodeGen/AArch64/O0-pipeline.ll @@ -17,7 +17,7 @@ ; CHECK-NEXT: ModulePass Manager ; CHECK-NEXT: Pre-ISel Intrinsic Lowering ; CHECK-NEXT: FunctionPass Manager -; CHECK-NEXT: Expand fp +; CHECK-NEXT: Expand IR instructions ; CHECK-NEXT: Expand Atomic instructions ; CHECK-NEXT: Module Verifier ; CHECK-NEXT: Lower Garbage Collection Instructions diff --git a/llvm/test/CodeGen/AArch64/O3-pipeline.ll b/llvm/test/CodeGen/AArch64/O3-pipeline.ll index 4dc3cd1d6b786..f6ed7d5eed814 100644 --- a/llvm/test/CodeGen/AArch64/O3-pipeline.ll +++ b/llvm/test/CodeGen/AArch64/O3-pipeline.ll @@ -21,7 +21,7 @@ ; CHECK-NEXT: ModulePass Manager ; CHECK-NEXT: Pre-ISel Intrinsic Lowering ; CHECK-NEXT: FunctionPass Manager -; CHECK-NEXT: Expand fp +; CHECK-NEXT: Expand IR instructions ; CHECK-NEXT: Expand Atomic instructions ; CHECK-NEXT: SVE intrinsics optimizations ; CHECK-NEXT: FunctionPass Manager diff --git a/llvm/test/CodeGen/AMDGPU/dagcombine-select.ll b/llvm/test/CodeGen/AMDGPU/dagcombine-select.ll index 39365fe7b6f15..c828f0b538bec 100644 --- a/llvm/test/CodeGen/AMDGPU/dagcombine-select.ll +++ b/llvm/test/CodeGen/AMDGPU/dagcombine-select.ll @@ -579,8 +579,8 @@ define amdgpu_kernel void @fdiv_constant_sel_constants(ptr addrspace(1) %p, i1 % ret void } -; ExpandFp now expands frem before it reaches dagcombine. -; TODO Implement this optimization in/before ExpandFP +; ExpandIRInsts now expands frem before it reaches dagcombine. +; TODO Implement this optimization in/before ExpandIRInsts? define amdgpu_kernel void @frem_constant_sel_constants(ptr addrspace(1) %p, i1 %cond) { ; GFX9-LABEL: frem_constant_sel_constants: ; GFX9: ; %bb.0: diff --git a/llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll b/llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll index c001df48499c7..eee3352fa7452 100644 --- a/llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll +++ b/llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll @@ -2,7 +2,7 @@ ; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GCN,SDAG %s ; RUN: not --crash llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s 2>&1 | FileCheck -check-prefix=GISEL %s -; FIXME: GISEL can't handle the "fptrunc float to bfloat" that expand-fp emits. +; FIXME: GISEL can't handle the "fptrunc float to bfloat" that expand-ir-insts emits. ; GISEL: unable to translate instruction: fptrunc diff --git a/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll b/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll index edf4b6f26d08e..61c751a9816a2 100644 --- a/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll +++ b/llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll @@ -9,11 +9,11 @@ ; RUN: | FileCheck -check-prefix=GCN-O3 %s -; GCN-O0: require<MachineModuleAnalysis>,require<profile-summary>,require<collector-metadata>,require<runtime-libcall-info>,pre-isel-intrinsic-lowering,function(expand-fp<O0>),amdgpu-remove-incompatible-functions,amdgpu-printf-runtime-binding,amdgpu-lower-ctor-dtor,function(amdgpu-uniform-intrinsic-combine),expand-variadics,amdgpu-always-inline,always-inline,amdgpu-export-kernel-runtime-handles,amdgpu-lower-exec-sync,amdgpu-sw-lower-lds,amdgpu-lower-module-lds,function(atomic-expand,verify,gc-lowering,lower-constant-intrinsics,unreachableblockelim,ee-instrument<post-inline>,scalarize-masked-mem-intrin,expand-reductions,amdgpu-lower-kernel-arguments),amdgpu-lower-buffer-fat-pointers,amdgpu-lower-intrinsics,cgscc(function(lower-switch,lower-invoke,unreachableblockelim)),require<amdgpu-argument-usage>,cgscc(function(amdgp... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/172681 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
