projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[oota-llvm.git]
/
include
/
llvm
/
Instruction.h
diff --git
a/include/llvm/Instruction.h
b/include/llvm/Instruction.h
index 2e5bcdaed225255ec1bb37c54842821b7f47da5e..0674f0ed1ab34193f6170df3c3b7939ef486e081 100644
(file)
--- a/
include/llvm/Instruction.h
+++ b/
include/llvm/Instruction.h
@@
-1,7
+1,7
@@
-//===-- llvm/Instruction.h - Instruction class definition -------
-*- C++ -*--
=//
+//===-- llvm/Instruction.h - Instruction class definition -------
*- C++ -*-==
=//
//
// This file contains the declaration of the Instruction class, which is the
//
// This file contains the declaration of the Instruction class, which is the
-// base class for all of the VM instructions.
+// base class for all of the
LL
VM instructions.
//
//===----------------------------------------------------------------------===//
//
//===----------------------------------------------------------------------===//
@@
-22,11
+22,13
@@
class Instruction : public User {
friend class SymbolTableListTraits<Instruction, BasicBlock, Function,
ilist_traits<Instruction> >;
friend class SymbolTableListTraits<Instruction, BasicBlock, Function,
ilist_traits<Instruction> >;
- inline void setParent(BasicBlock *P) { Parent = P; }
+ void setParent(BasicBlock *P);
protected:
protected:
- unsigned iType; // InstructionType
+ unsigned iType; // InstructionType: The opcode of the instruction
+
+ Instruction(const Type *Ty, unsigned iType, const std::string &Name = "",
+ Instruction *InsertBefore = 0);
public:
public:
- Instruction(const Type *Ty, unsigned iType, const std::string &Name = "");
virtual ~Instruction() {
assert(Parent == 0 && "Instruction still embedded in basic block!");
}
virtual ~Instruction() {
assert(Parent == 0 && "Instruction still embedded in basic block!");
}
@@
-34,11
+36,11
@@
public:
// Specialize setName to handle symbol table majik...
virtual void setName(const std::string &name, SymbolTable *ST = 0);
// Specialize setName to handle symbol table majik...
virtual void setName(const std::string &name, SymbolTable *ST = 0);
- //
clone() - Create a copy of 'this' instruction that is identical in all ways
- // except the following:
- // * The instruction has no parent
- // * The instruction has no name
- //
+ //
/ clone() - Create a copy of 'this' instruction that is identical in all
+ //
/ ways
except the following:
+ //
/
* The instruction has no parent
+ //
/
* The instruction has no name
+ //
/
virtual Instruction *clone() const = 0;
// Accessor methods...
virtual Instruction *clone() const = 0;
// Accessor methods...
@@
-56,9
+58,9
@@
public:
virtual bool hasSideEffects() const { return false; } // Memory & Call insts
// ---------------------------------------------------------------------------
virtual bool hasSideEffects() const { return false; } // Memory & Call insts
// ---------------------------------------------------------------------------
- // Subclass classification... getOpcode() returns a member of
- // one of the enums that is coming soon (down below)...
- //
+ //
/
Subclass classification... getOpcode() returns a member of
+ //
/
one of the enums that is coming soon (down below)...
+ //
/
unsigned getOpcode() const { return iType; }
virtual const char *getOpcodeName() const {
return getOpcodeName(getOpcode());
unsigned getOpcode() const { return iType; }
virtual const char *getOpcodeName() const {
return getOpcodeName(getOpcode());
@@
-68,16
+70,13
@@
public:
inline bool isTerminator() const { // Instance of TerminatorInst?
return iType >= FirstTermOp && iType < NumTermOps;
}
inline bool isTerminator() const { // Instance of TerminatorInst?
return iType >= FirstTermOp && iType < NumTermOps;
}
- inline bool isUnaryOp() const {
- return iType >= FirstUnaryOp && iType < NumUnaryOps;
- }
inline bool isBinaryOp() const {
return iType >= FirstBinaryOp && iType < NumBinaryOps;
}
virtual void print(std::ostream &OS) const;
inline bool isBinaryOp() const {
return iType >= FirstBinaryOp && iType < NumBinaryOps;
}
virtual void print(std::ostream &OS) const;
- // Methods for support type inquiry through isa, cast, and dyn_cast:
+ //
/
Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const Instruction *I) { return true; }
static inline bool classof(const Value *V) {
return V->getValueType() == Value::InstructionVal;
static inline bool classof(const Instruction *I) { return true; }
static inline bool classof(const Value *V) {
return V->getValueType() == Value::InstructionVal;
@@
-93,13
+92,6
@@
public:
#include "llvm/Instruction.def"
};
#include "llvm/Instruction.def"
};
- enum UnaryOps {
-#define FIRST_UNARY_INST(N) FirstUnaryOp = N,
-#define HANDLE_UNARY_INST(N, OPC, CLASS) OPC = N,
-#define LAST_UNARY_INST(N) NumUnaryOps = N+1,
-#include "llvm/Instruction.def"
- };
-
enum BinaryOps {
#define FIRST_BINARY_INST(N) FirstBinaryOp = N,
#define HANDLE_BINARY_INST(N, OPC, CLASS) OPC = N,
enum BinaryOps {
#define FIRST_BINARY_INST(N) FirstBinaryOp = N,
#define HANDLE_BINARY_INST(N, OPC, CLASS) OPC = N,