Make iostream #inclusion explicit
[oota-llvm.git] / lib / VMCore / ConstantFold.h
index 7aa1683bd7184c3af40a55390f8847f0321c5384..7914a1cbfdae05e60d8a5d8d9812dba63225bfce 100644 (file)
@@ -1,10 +1,10 @@
 //===-- ConstantFolding.h - Internal Constant Folding Interface -*- C++ -*-===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file was developed by the LLVM research group and is distributed under
 // the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
 //
 // This file defines the (internal) constant folding interfaces for LLVM.  These
 #include <vector>
 
 namespace llvm {
+  class Value;
   class Constant;
   class Type;
-  
+
   // Constant fold various types of instruction...
   Constant *ConstantFoldCastInstruction(const Constant *V, const Type *DestTy);
+  Constant *ConstantFoldSelectInstruction(const Constant *Cond,
+                                          const Constant *V1,
+                                          const Constant *V2);
+  Constant *ConstantFoldExtractElementInstruction(const Constant *Val,
+                                                  const Constant *Idx);
+  Constant *ConstantFoldInsertElementInstruction(const Constant *Val,
+                                                 const Constant *Elt,
+                                                 const Constant *Idx);
   Constant *ConstantFoldBinaryInstruction(unsigned Opcode, const Constant *V1,
                                           const Constant *V2);
   Constant *ConstantFoldGetElementPtr(const Constant *C,
-                                      const std::vector<Constant*> &IdxList);
+                                      const std::vector<Value*> &IdxList);
 } // End llvm namespace
 
 #endif