diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-24 16:37:25 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-24 16:37:25 +0800 |
| commit | 540c73a2f450af3d0aec6e039fab054471efdbb1 (patch) | |
| tree | 9b260322eaeeac8b8741a30a273f7d407b683e5e /backend/lib/CodeGen/FrameIndexElimination.cpp | |
| parent | 936ac5647f82def050e6654d44d24a88906f4d7a (diff) | |
| download | rcc-project-540c73a2f450af3d0aec6e039fab054471efdbb1.tar.gz rcc-project-540c73a2f450af3d0aec6e039fab054471efdbb1.tar.xz | |
[RISCV] Match LLVM frame lowering semantics
Diffstat (limited to 'backend/lib/CodeGen/FrameIndexElimination.cpp')
| -rw-r--r-- | backend/lib/CodeGen/FrameIndexElimination.cpp | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/backend/lib/CodeGen/FrameIndexElimination.cpp b/backend/lib/CodeGen/FrameIndexElimination.cpp index 53c64e1..acc502d 100644 --- a/backend/lib/CodeGen/FrameIndexElimination.cpp +++ b/backend/lib/CodeGen/FrameIndexElimination.cpp @@ -5,13 +5,11 @@ #include "rcc/CodeGen/MachineBasicBlock.h" #include "rcc/CodeGen/MachineFunction.h" #include "rcc/CodeGen/MachineInstr.h" -#include "rcc/CodeGen/MachineMemOperand.h" #include "rcc/CodeGen/MachineOperand.h" #include "rcc/CodeGen/RegisterScavenger.h" #include "rcc/CodeGen/TargetFrameLowering.h" #include <cstddef> -#include <utility> namespace rcc { @@ -32,26 +30,6 @@ Expected<bool> eliminateFrameIndices(MachineFunction &Function, const TargetDesc Changed = true; } - for (std::size_t Index = 0; Index < Instruction->memOperands().size(); ++Index) { - const MachineMemOperand *Memory = Instruction->memOperands()[Index]; - const auto Frame = Memory->description().Base.frameIndex(); - if (!Frame) - continue; - auto Reference = FrameLowering.getFrameIndexReference(Function, *Instruction, *Frame, - Memory->description().Offset); - if (!Reference) - return std::unexpected(Reference.error()); - MachineMemOperandDesc Description = Memory->description(); - Description.Base = MemoryBase::stack(); - Description.Offset = Reference->Offset; - auto Replacement = Function.createMemOperand(std::move(Description)); - if (!Replacement) - return std::unexpected(Replacement.error()); - auto Replaced = Instruction->replaceMemOperand(Index, **Replacement); - if (!Replaced) - return std::unexpected(Replaced.error()); - Changed = true; - } Instruction = Next; } } |
