diff options
author | Justin Bogner <mail@justinbogner.com> | 2017-01-20 00:30:17 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2017-01-20 00:30:17 +0000 |
commit | e094cc4372bfe378f2e455879e501a7f890b8eba (patch) | |
tree | 64d66d417d36939f6b36baef6eae781c4ba1de75 /llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | |
parent | 19252ac6f0748447b1862ca6533c42b29d4710a3 (diff) | |
download | bcm5719-llvm-e094cc4372bfe378f2e455879e501a7f890b8eba.tar.gz bcm5719-llvm-e094cc4372bfe378f2e455879e501a7f890b8eba.zip |
GlobalISel: Add a note about how we're being a bit loose with memory operands
The logic in r292461 is conservatively correct, but we should revisit
this later. Add a TODO so we don't forget.
llvm-svn: 292553
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp index 0f23c2f0358..5f23d253f56 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp @@ -177,6 +177,8 @@ LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI, MIRBuilder.buildConstant(Offset, i * NarrowSize / 8); MIRBuilder.buildGEP(SrcReg, MI.getOperand(1).getReg(), Offset); + // TODO: This is conservatively correct, but we probably want to split the + // memory operands in the future. MIRBuilder.buildLoad(DstReg, SrcReg, **MI.memoperands_begin()); DstRegs.push_back(DstReg); @@ -202,6 +204,8 @@ LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI, unsigned Offset = MRI.createGenericVirtualRegister(LLT::scalar(64)); MIRBuilder.buildConstant(Offset, i * NarrowSize / 8); MIRBuilder.buildGEP(DstReg, MI.getOperand(1).getReg(), Offset); + // TODO: This is conservatively correct, but we probably want to split the + // memory operands in the future. MIRBuilder.buildStore(SrcRegs[i], DstReg, **MI.memoperands_begin()); } MI.eraseFromParent(); |