[llvm-commits] [llvm] r53382 - /llvm/trunk/include/llvm/Constant.h

Chris Lattner sabre at nondot.org
Wed Jul 9 17:28:34 PDT 2008


Author: lattner
Date: Wed Jul  9 19:28:34 2008
New Revision: 53382

URL: http://llvm.org/viewvc/llvm-project?rev=53382&view=rev
Log:
add a helper method for code that wants to handle vector
constants by element without caring how they are formed.

Modified:
    llvm/trunk/include/llvm/Constant.h

Modified: llvm/trunk/include/llvm/Constant.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Constant.h?rev=53382&r1=53381&r2=53382&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Constant.h (original)
+++ llvm/trunk/include/llvm/Constant.h Wed Jul  9 19:28:34 2008
@@ -17,6 +17,7 @@
 #include "llvm/User.h"
 
 namespace llvm {
+  template<typename T> class SmallVectorImpl;
 
 /// This is an important base class in LLVM. It provides the common facilities
 /// of all constant values in an LLVM program. A constant is a value that is
@@ -79,6 +80,11 @@
   void setOperand(unsigned i, Constant *C) {
     User::setOperand(i, C);
   }
+  
+  /// getVectorElements - This method, which is only valid on constant of vector
+  /// type, returns the elements of the vector in the specified smallvector.
+  /// This handles breaking down a vector undef into undef elements, etc.
+  void getVectorElements(SmallVectorImpl<Constant*> &Elts) const;
 
   /// destroyConstant - Called if some element of this constant is no longer
   /// valid.  At this point only other constants may be on the use_list for this





More information about the llvm-commits mailing list