diff options
| author | Eli Bendersky <eliben@google.com> | 2015-07-17 16:42:33 +0000 |
|---|---|---|
| committer | Eli Bendersky <eliben@google.com> | 2015-07-17 16:42:33 +0000 |
| commit | b09cfb51ca2bc0ed4a019cc46dd20223b966a577 (patch) | |
| tree | 9e085719ff12556d00b4d068ca2e905ebec856df /llvm/lib/Target | |
| parent | 34389c8d781b584fe486e4bdd68c52f52998f938 (diff) | |
| download | bcm5719-llvm-b09cfb51ca2bc0ed4a019cc46dd20223b966a577.tar.gz bcm5719-llvm-b09cfb51ca2bc0ed4a019cc46dd20223b966a577.zip | |
Use inbounds GEPs for memcpy and memset lowering
Follow-up on discussion in http://reviews.llvm.org/D11220
llvm-svn: 242542
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp b/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp index 91c872d709c..35298565e58 100644 --- a/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp @@ -87,14 +87,15 @@ void convertMemCpyToLoop(Instruction *ConvertedInst, Value *SrcAddr, // load from SrcAddr+LoopIndex // TODO: we can leverage the align parameter of llvm.memcpy for more efficient // word-sized loads and stores. - Value *Element = LoopBuilder.CreateLoad( - LoopBuilder.CreateGEP(LoopBuilder.getInt8Ty(), SrcAddr, LoopIndex), - SrcIsVolatile); + Value *Element = + LoopBuilder.CreateLoad(LoopBuilder.CreateInBoundsGEP( + LoopBuilder.getInt8Ty(), SrcAddr, LoopIndex), + SrcIsVolatile); // store at DstAddr+LoopIndex - LoopBuilder.CreateStore( - Element, - LoopBuilder.CreateGEP(LoopBuilder.getInt8Ty(), DstAddr, LoopIndex), - DstIsVolatile); + LoopBuilder.CreateStore(Element, + LoopBuilder.CreateInBoundsGEP(LoopBuilder.getInt8Ty(), + DstAddr, LoopIndex), + DstIsVolatile); // The value for LoopIndex coming from backedge is (LoopIndex + 1) Value *NewIndex = @@ -225,7 +226,8 @@ void convertMemSetToLoop(Instruction *ConvertedInst, Value *DstAddr, LoopIndex->addIncoming(ConstantInt::get(CopyLen->getType(), 0), OrigBB); LoopBuilder.CreateStore( - SetValue, LoopBuilder.CreateGEP(SetValue->getType(), DstAddr, LoopIndex), + SetValue, + LoopBuilder.CreateInBoundsGEP(SetValue->getType(), DstAddr, LoopIndex), false); Value *NewIndex = |

