projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use a nicer accessor.
[oota-llvm.git]
/
lib
/
VMCore
/
ConstantFold.h
diff --git
a/lib/VMCore/ConstantFold.h
b/lib/VMCore/ConstantFold.h
index 676b4b8cd8314af4dc3a17ad7eb6f6955206baa6..e01fa77084015e3fa212aa6e0f248116f3f6533c 100644
(file)
--- a/
lib/VMCore/ConstantFold.h
+++ b/
lib/VMCore/ConstantFold.h
@@
-1,10
+1,10
@@
//===-- ConstantFolding.h - Internal Constant Folding Interface -*- C++ -*-===//
//===-- 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.
// 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
//===----------------------------------------------------------------------===//
//
// This file defines the (internal) constant folding interfaces for LLVM. These
@@
-19,22
+19,35
@@
#ifndef CONSTANTFOLDING_H
#define CONSTANTFOLDING_H
#ifndef CONSTANTFOLDING_H
#define CONSTANTFOLDING_H
-#include <vector>
-
namespace llvm {
class Value;
class Constant;
namespace llvm {
class Value;
class Constant;
-
struct
Type;
-
+
class
Type;
+
// Constant fold various types of instruction...
// Constant fold various types of instruction...
- Constant *ConstantFoldCastInstruction(const Constant *V, const Type *DestTy);
+ Constant *ConstantFoldCastInstruction(
+ unsigned opcode, ///< The opcode of the cast
+ const Constant *V, ///< The source constant
+ const Type *DestTy ///< The destination type
+ );
Constant *ConstantFoldSelectInstruction(const Constant *Cond,
const Constant *V1,
const Constant *V2);
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 *ConstantFoldShuffleVectorInstruction(const Constant *V1,
+ const Constant *V2,
+ const Constant *Mask);
Constant *ConstantFoldBinaryInstruction(unsigned Opcode, const Constant *V1,
const Constant *V2);
Constant *ConstantFoldBinaryInstruction(unsigned Opcode, const Constant *V1,
const Constant *V2);
+ Constant *ConstantFoldCompareInstruction(unsigned short predicate,
+ const Constant *C1,
+ const Constant *C2);
Constant *ConstantFoldGetElementPtr(const Constant *C,
Constant *ConstantFoldGetElementPtr(const Constant *C,
-
const std::vector<Value*> &IdxList
);
+
Constant* const *Idxs, unsigned NumIdx
);
} // End llvm namespace
#endif
} // End llvm namespace
#endif