[llvm-branch-commits] [llvm] [CodeGen] Rename expand-fp to expand-ir-insts (PR #172681)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Dec 17 08:09:42 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-loongarch
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
More information about the llvm-branch-commits
mailing list