[llvm] r328315 - Remove deprecated MemIntrinsic methods (NFC)
Daniel Neilson via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 23 07:02:54 PDT 2018
Author: dneilson
Date: Fri Mar 23 07:02:54 2018
New Revision: 328315
URL: http://llvm.org/viewvc/llvm-project?rev=328315&view=rev
Log:
Remove deprecated MemIntrinsic methods (NFC)
Summary:
This change is part of step six in the series of changes to remove
the alignment argument from memcpy/memmove/memset in favour of
alignment attributes. At this point all uses of
MemIntrinsicInst::[get|set]Alignment() have been updated, so we now
remove these methods entirely to discourage their use.
Steps:
Step 1) Remove alignment parameter and create alignment parameter attributes for
memcpy/memmove/memset. ( rL322965, rC322964, rL322963 )
Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing
source and dest alignments. ( rL323597 )
Step 3) Update Clang to use the new IRBuilder API. ( rC323617 )
Step 4) Update Polly to use the new IRBuilder API. ( rL323618 )
Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API,
and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment()
and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273, rL324278,
rL324384, rL324395, rL324402, rL324626, rL324642, rL324653, rL324654, rL324773, rL324774,
rL324781, rL324784, rL324955, rL324960, rL325816, rL327398, rL327421, rL328097 )
Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the
MemIntrinsicInst::[get|set]Alignment() methods.
Reference
http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html
Modified:
llvm/trunk/include/llvm/IR/IntrinsicInst.h
Modified: llvm/trunk/include/llvm/IR/IntrinsicInst.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/IntrinsicInst.h?rev=328315&r1=328314&r2=328315&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/IntrinsicInst.h (original)
+++ llvm/trunk/include/llvm/IR/IntrinsicInst.h Fri Mar 23 07:02:54 2018
@@ -417,11 +417,6 @@ namespace llvm {
enum { ARG_VOLATILE = 3 };
public:
- // TODO: Remove this method entirely.
- // Interim, for now, during transition from having an alignment
- // arg to using alignment attributes.
- unsigned getAlignment() const;
-
ConstantInt *getVolatileCst() const {
return cast<ConstantInt>(
const_cast<Value *>(getArgOperand(ARG_VOLATILE)));
@@ -431,11 +426,6 @@ namespace llvm {
return !getVolatileCst()->isZero();
}
- // TODO: Remove this method entirely. It is here only during transition
- // from having an explicit alignment arg to using alignment attributes.
- // For now we always set dest & source alignment attributes to match
- void setAlignment(unsigned Align);
-
void setVolatile(Constant *V) { setArgOperand(ARG_VOLATILE, V); }
// Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -523,19 +513,6 @@ namespace llvm {
}
};
- inline unsigned MemIntrinsic::getAlignment() const {
- if (const auto *MTI = dyn_cast<MemTransferInst>(this))
- return std::min(MTI->getDestAlignment(), MTI->getSourceAlignment());
- else
- return getDestAlignment();
- }
-
- inline void MemIntrinsic::setAlignment(unsigned Align) {
- setDestAlignment(Align);
- if (auto *MTI = dyn_cast<MemTransferInst>(this))
- MTI->setSourceAlignment(Align);
- }
-
/// This class wraps the llvm.memcpy intrinsic.
class MemCpyInst : public MemTransferInst {
public:
More information about the llvm-commits
mailing list