Skip to content

[AMDGPU] Implement IR expansion for frem instruction #130988

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
b0f7996
Implement IR expansion for frem instruction
frederik-h Feb 25, 2025
193957c
Adjust some comments, remove include
frederik-h Mar 12, 2025
58a2edb
clang-format changes
frederik-h Mar 12, 2025
f3f0a8f
Apply suggestions from code review
frederik-h Mar 13, 2025
9eaad61
Rename ExpandLargeFpConvertPass to ExpandFpPass
frederik-h Mar 13, 2025
ea49f29
Rename ExpandLargeFpConvert.{cpp,h}
frederik-h Mar 13, 2025
80301aa
clang-format changes
frederik-h Mar 13, 2025
1812c7f
Add IRBuilder::CreateFMA (#131112)
frederik-h Mar 14, 2025
5be756a
Review changes
frederik-h Mar 17, 2025
f38f769
AMDGPU: Add more freeze codegen tests
arsenm Mar 18, 2025
56369a8
DAG: Fix promote of half freeze
arsenm Mar 18, 2025
6acfd7a
Fix losing the actual freeze
arsenm Mar 19, 2025
3d3d5fb
Adjust expand-fp pass DEBUG_TYPE
frederik-h Mar 19, 2025
22ba910
Use AssumptionCache
frederik-h Mar 19, 2025
05e90cd
Adjust freeze.ll tst
frederik-h Mar 19, 2025
485f446
Remove exceptional handling to dagcombine
frederik-h Mar 20, 2025
8559b6d
Adjust test
frederik-h Mar 20, 2025
772f855
clang-format changes
frederik-h Mar 20, 2025
1112189
Adjust type
frederik-h Mar 20, 2025
bf4e09d
Merge remote-tracking branch 'upstream/main' into frem-expansion
frederik-h Mar 20, 2025
2cc1d42
Update tests
frederik-h Mar 20, 2025
063c957
Adjust type to fix Windows compilation
frederik-h Mar 21, 2025
7c075b7
review changes
frederik-h Mar 31, 2025
2abf5d8
Adjust comments
frederik-h Mar 31, 2025
8b82aff
fixup! Adjust comments
frederik-h Mar 31, 2025
d55bd61
clang-format changes
frederik-h Mar 31, 2025
f9d7936
Update llvm/lib/CodeGen/ExpandFp.cpp
frederik-h Apr 17, 2025
173bfff
Update llvm/lib/CodeGen/ExpandFp.cpp
frederik-h Apr 17, 2025
73a968d
Update llvm/lib/CodeGen/ExpandFp.cpp
frederik-h Apr 17, 2025
e7cda42
Update llvm/test/CodeGen/AMDGPU/dagcombine-select.ll
frederik-h Apr 17, 2025
bbc14f0
Update llvm/lib/CodeGen/ExpandFp.cpp
frederik-h Apr 23, 2025
4f11a1d
Remove unused #include
frederik-h Apr 17, 2025
aaf054b
Handle skipFunction and optnone
frederik-h Apr 17, 2025
c4394a6
Change inappropriate use of "auto"
frederik-h Apr 17, 2025
0e1de19
Add dagcombine-select test
frederik-h Apr 23, 2025
024f7dd
Use isHalfyTy instead of is16bitFPTy
frederik-h Apr 23, 2025
54cf635
Add opt-level parameter to ExpandFp pass
frederik-h Apr 25, 2025
2e2612d
Merge remote-tracking branch 'upstream/main' into frem-expansion
frederik-h Apr 25, 2025
e9763c1
Update tests
frederik-h Apr 25, 2025
a43871f
clang-format changes
frederik-h Apr 25, 2025
f4ad156
Merge remote-tracking branch 'upstream' into frem-expansion
frederik-h Jun 16, 2025
8a72d2f
Adjust to isKnownNeverInfinity changes
frederik-h Jun 16, 2025
7ee8aa9
Merge remote-tracking branch 'upstream' into frem-expansion
frederik-h Jun 17, 2025
d1bf4cb
Move check for ScalableVectorType earlier
frederik-h Jun 24, 2025
9ab5edd
Adjust tests
frederik-h Jun 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion llvm/include/llvm/CodeGen/ExpandFp.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#define LLVM_CODEGEN_EXPANDFP_H

#include "llvm/IR/PassManager.h"
#include "llvm/Support/CodeGen.h"

namespace llvm {

Expand All @@ -18,11 +19,15 @@ class TargetMachine;
class ExpandFpPass : public PassInfoMixin<ExpandFpPass> {
private:
const TargetMachine *TM;
CodeGenOptLevel OptLevel;

public:
explicit ExpandFpPass(const TargetMachine *TM_) : TM(TM_) {}
explicit ExpandFpPass(const TargetMachine *TM, CodeGenOptLevel OptLevel);

PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);

void printPipeline(raw_ostream &OS,
function_ref<StringRef(StringRef)> MapClassName2PassName);
};

} // end namespace llvm
Expand Down
3 changes: 3 additions & 0 deletions llvm/include/llvm/CodeGen/Passes.h
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,9 @@ LLVM_ABI FunctionPass *createCFIFixup();
/// Creates CFI Instruction Inserter pass. \see CFIInstrInserter.cpp
LLVM_ABI FunctionPass *createCFIInstrInserter();

// Expands floating point instructions.
FunctionPass *createExpandFpPass(CodeGenOptLevel);

/// Creates CFGuard longjmp target identification pass.
/// \see CFGuardLongjmp.cpp
LLVM_ABI FunctionPass *createCFGuardLongjmpPass();
Expand Down
2 changes: 1 addition & 1 deletion llvm/include/llvm/Passes/CodeGenPassBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,7 @@ void CodeGenPassBuilder<Derived, TargetMachineT>::addISelPasses(

addPass(PreISelIntrinsicLoweringPass(&TM));
addPass(ExpandLargeDivRemPass(&TM));
addPass(ExpandFpPass(&TM));
addPass(ExpandFpPass(&TM, getOptLevel()));

derived().addIRPasses(addPass);
derived().addCodeGenPrepare(addPass);
Expand Down
Loading
Loading