[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