LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::Instruction Class Reference

#include <Instruction.h>

Inheritance diagram for llvm::Instruction:

Inheritance graph
[legend]
Collaboration diagram for llvm::Instruction:

Collaboration graph
[legend]
List of all members.

Public Types

enum  TermOps {
  N, OPC, num, opcode,
  num, opcode, num, opcode,
  num, opcode, HANDLE_BINARY_INST, Shl,
  HANDLE_BINARY_INST, LShr, HANDLE_BINARY_INST, AShr,
  HANDLE_MEMORY_INST, Malloc, HANDLE_MEMORY_INST, Alloca,
  HANDLE_MEMORY_INST, Load, HANDLE_CAST_INST, Trunc,
  HANDLE_CAST_INST, ZExt, HANDLE_CAST_INST, SExt,
  HANDLE_CAST_INST, FPToUI, HANDLE_CAST_INST, FPToSI,
  HANDLE_CAST_INST, UIToFP, HANDLE_CAST_INST, SIToFP,
  HANDLE_CAST_INST, FPTrunc, HANDLE_CAST_INST, FPExt,
  HANDLE_CAST_INST, PtrToInt, HANDLE_CAST_INST, IntToPtr,
  HANDLE_CAST_INST, BitCast, HANDLE_OTHER_INST, ICmp,
  HANDLE_OTHER_INST, FCmp, HANDLE_OTHER_INST, PHI,
  HANDLE_OTHER_INST, Call, HANDLE_OTHER_INST, Select,
  HANDLE_OTHER_INST, UserOp1, HANDLE_OTHER_INST, UserOp2,
  HANDLE_OTHER_INST, VAArg, HANDLE_OTHER_INST, ExtractElement,
  HANDLE_OTHER_INST, InsertElement, HANDLE_OTHER_INST, ShuffleVector,
  HANDLE_OTHER_INST, ExtractValue, HANDLE_OTHER_INST, InsertValue,
  HANDLE_OTHER_INST, VICmp, HANDLE_OTHER_INST, VFCmp,
  VFCmpInst
}
enum  BinaryOps {
  N, OPC, num, opcode,
  num, opcode, num, opcode,
  num, opcode, HANDLE_BINARY_INST, Shl,
  HANDLE_BINARY_INST, LShr, HANDLE_BINARY_INST, AShr,
  HANDLE_MEMORY_INST, Malloc, HANDLE_MEMORY_INST, Alloca,
  HANDLE_MEMORY_INST, Load, HANDLE_CAST_INST, Trunc,
  HANDLE_CAST_INST, ZExt, HANDLE_CAST_INST, SExt,
  HANDLE_CAST_INST, FPToUI, HANDLE_CAST_INST, FPToSI,
  HANDLE_CAST_INST, UIToFP, HANDLE_CAST_INST, SIToFP,
  HANDLE_CAST_INST, FPTrunc, HANDLE_CAST_INST, FPExt,
  HANDLE_CAST_INST, PtrToInt, HANDLE_CAST_INST, IntToPtr,
  HANDLE_CAST_INST, BitCast, HANDLE_OTHER_INST, ICmp,
  HANDLE_OTHER_INST, FCmp, HANDLE_OTHER_INST, PHI,
  HANDLE_OTHER_INST, Call, HANDLE_OTHER_INST, Select,
  HANDLE_OTHER_INST, UserOp1, HANDLE_OTHER_INST, UserOp2,
  HANDLE_OTHER_INST, VAArg, HANDLE_OTHER_INST, ExtractElement,
  HANDLE_OTHER_INST, InsertElement, HANDLE_OTHER_INST, ShuffleVector,
  HANDLE_OTHER_INST, ExtractValue, HANDLE_OTHER_INST, InsertValue,
  HANDLE_OTHER_INST, VICmp, HANDLE_OTHER_INST, VFCmp,
  VFCmpInst
}
enum  MemoryOps {
  N, OPC, num, opcode,
  num, opcode, num, opcode,
  num, opcode, HANDLE_BINARY_INST, Shl,
  HANDLE_BINARY_INST, LShr, HANDLE_BINARY_INST, AShr,
  HANDLE_MEMORY_INST, Malloc, HANDLE_MEMORY_INST, Alloca,
  HANDLE_MEMORY_INST, Load, HANDLE_CAST_INST, Trunc,
  HANDLE_CAST_INST, ZExt, HANDLE_CAST_INST, SExt,
  HANDLE_CAST_INST, FPToUI, HANDLE_CAST_INST, FPToSI,
  HANDLE_CAST_INST, UIToFP, HANDLE_CAST_INST, SIToFP,
  HANDLE_CAST_INST, FPTrunc, HANDLE_CAST_INST, FPExt,
  HANDLE_CAST_INST, PtrToInt, HANDLE_CAST_INST, IntToPtr,
  HANDLE_CAST_INST, BitCast, HANDLE_OTHER_INST, ICmp,
  HANDLE_OTHER_INST, FCmp, HANDLE_OTHER_INST, PHI,
  HANDLE_OTHER_INST, Call, HANDLE_OTHER_INST, Select,
  HANDLE_OTHER_INST, UserOp1, HANDLE_OTHER_INST, UserOp2,
  HANDLE_OTHER_INST, VAArg, HANDLE_OTHER_INST, ExtractElement,
  HANDLE_OTHER_INST, InsertElement, HANDLE_OTHER_INST, ShuffleVector,
  HANDLE_OTHER_INST, ExtractValue, HANDLE_OTHER_INST, InsertValue,
  HANDLE_OTHER_INST, VICmp, HANDLE_OTHER_INST, VFCmp,
  VFCmpInst
}
enum  CastOps {
  N, OPC, num, opcode,
  num, opcode, num, opcode,
  num, opcode, HANDLE_BINARY_INST, Shl,
  HANDLE_BINARY_INST, LShr, HANDLE_BINARY_INST, AShr,
  HANDLE_MEMORY_INST, Malloc, HANDLE_MEMORY_INST, Alloca,
  HANDLE_MEMORY_INST, Load, HANDLE_CAST_INST, Trunc,
  HANDLE_CAST_INST, ZExt, HANDLE_CAST_INST, SExt,
  HANDLE_CAST_INST, FPToUI, HANDLE_CAST_INST, FPToSI,
  HANDLE_CAST_INST, UIToFP, HANDLE_CAST_INST, SIToFP,
  HANDLE_CAST_INST, FPTrunc, HANDLE_CAST_INST, FPExt,
  HANDLE_CAST_INST, PtrToInt, HANDLE_CAST_INST, IntToPtr,
  HANDLE_CAST_INST, BitCast, HANDLE_OTHER_INST, ICmp,
  HANDLE_OTHER_INST, FCmp, HANDLE_OTHER_INST, PHI,
  HANDLE_OTHER_INST, Call, HANDLE_OTHER_INST, Select,
  HANDLE_OTHER_INST, UserOp1, HANDLE_OTHER_INST, UserOp2,
  HANDLE_OTHER_INST, VAArg, HANDLE_OTHER_INST, ExtractElement,
  HANDLE_OTHER_INST, InsertElement, HANDLE_OTHER_INST, ShuffleVector,
  HANDLE_OTHER_INST, ExtractValue, HANDLE_OTHER_INST, InsertValue,
  HANDLE_OTHER_INST, VICmp, HANDLE_OTHER_INST, VFCmp,
  VFCmpInst
}
enum  OtherOps {
  N, OPC, num, opcode,
  num, opcode, num, opcode,
  num, opcode, HANDLE_BINARY_INST, Shl,
  HANDLE_BINARY_INST, LShr, HANDLE_BINARY_INST, AShr,
  HANDLE_MEMORY_INST, Malloc, HANDLE_MEMORY_INST, Alloca,
  HANDLE_MEMORY_INST, Load, HANDLE_CAST_INST, Trunc,
  HANDLE_CAST_INST, ZExt, HANDLE_CAST_INST, SExt,
  HANDLE_CAST_INST, FPToUI, HANDLE_CAST_INST, FPToSI,
  HANDLE_CAST_INST, UIToFP, HANDLE_CAST_INST, SIToFP,
  HANDLE_CAST_INST, FPTrunc, HANDLE_CAST_INST, FPExt,
  HANDLE_CAST_INST, PtrToInt, HANDLE_CAST_INST, IntToPtr,
  HANDLE_CAST_INST, BitCast, HANDLE_OTHER_INST, ICmp,
  HANDLE_OTHER_INST, FCmp, HANDLE_OTHER_INST, PHI,
  HANDLE_OTHER_INST, Call, HANDLE_OTHER_INST, Select,
  HANDLE_OTHER_INST, UserOp1, HANDLE_OTHER_INST, UserOp2,
  HANDLE_OTHER_INST, VAArg, HANDLE_OTHER_INST, ExtractElement,
  HANDLE_OTHER_INST, InsertElement, HANDLE_OTHER_INST, ShuffleVector,
  HANDLE_OTHER_INST, ExtractValue, HANDLE_OTHER_INST, InsertValue,
  HANDLE_OTHER_INST, VICmp, HANDLE_OTHER_INST, VFCmp,
  VFCmpInst
}

Public Member Functions

 ~Instruction ()
bool mayWriteToMemory () const
bool mayReadFromMemory () const
virtual Instructionclone () const =0
bool isIdenticalTo (Instruction *I) const
bool isSameOperationAs (Instruction *I) const
 Determine if one instruction is the same operation as another.
bool isUsedOutsideOfBlock (const BasicBlock *BB) const
Instructionuse_back ()
const Instructionuse_back () const
const BasicBlockgetParent () const
BasicBlockgetParent ()
void removeFromParent ()
void eraseFromParent ()
void insertBefore (Instruction *InsertPos)
void moveBefore (Instruction *MovePos)
unsigned getOpcode () const
const char * getOpcodeName () const
bool isTerminator () const
bool isBinaryOp () const
bool isShift ()
bool isCast () const
bool isLogicalShift () const
bool isArithmeticShift () const
bool isAssociative () const
bool isCommutative () const
bool isTrapping () const

Static Public Member Functions

const char * getOpcodeName (unsigned OpCode)
bool isTerminator (unsigned OpCode)
bool isBinaryOp (unsigned Opcode)
bool isShift (unsigned Opcode)
 Determine if the Opcode is one of the shift instructions.
bool isCast (unsigned OpCode)
 Determine if the OpCode is one of the CastInst instructions.
bool isAssociative (unsigned op, const Type *Ty)
bool isCommutative (unsigned op)
bool isTrapping (unsigned op)
bool classof (const Instruction *)
 Methods for support type inquiry through isa, cast, and dyn_cast:.
bool classof (const Value *V)

Protected Member Functions

 Instruction (const Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, Instruction *InsertBefore=0)
 Instruction (const Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, BasicBlock *InsertAtEnd)

Friends

class SymbolTableListTraits<Instruction, BasicBlock>

Member Enumeration Documentation

enum llvm::Instruction::BinaryOps
 

Enumeration values:
N 
OPC 
num 
opcode 
num 
opcode 
num 
opcode 
num 
opcode 
HANDLE_BINARY_INST 
Shl 
HANDLE_BINARY_INST 
LShr 
HANDLE_BINARY_INST 
AShr 
HANDLE_MEMORY_INST 
Malloc 
HANDLE_MEMORY_INST 
Alloca 
HANDLE_MEMORY_INST 
Load 
HANDLE_CAST_INST 
Trunc 
HANDLE_CAST_INST 
ZExt 
HANDLE_CAST_INST 
SExt 
HANDLE_CAST_INST 
FPToUI 
HANDLE_CAST_INST 
FPToSI 
HANDLE_CAST_INST 
UIToFP 
HANDLE_CAST_INST 
SIToFP 
HANDLE_CAST_INST 
FPTrunc 
HANDLE_CAST_INST 
FPExt 
HANDLE_CAST_INST 
PtrToInt 
HANDLE_CAST_INST 
IntToPtr 
HANDLE_CAST_INST 
BitCast 
HANDLE_OTHER_INST 
ICmp 
HANDLE_OTHER_INST 
FCmp 
HANDLE_OTHER_INST 
PHI 
HANDLE_OTHER_INST 
Call 
HANDLE_OTHER_INST 
Select 
HANDLE_OTHER_INST 
UserOp1 
HANDLE_OTHER_INST 
UserOp2 
HANDLE_OTHER_INST 
VAArg 
HANDLE_OTHER_INST 
ExtractElement 
HANDLE_OTHER_INST 
InsertElement 
HANDLE_OTHER_INST 
ShuffleVector 
HANDLE_OTHER_INST 
ExtractValue 
HANDLE_OTHER_INST 
InsertValue 
HANDLE_OTHER_INST 
VICmp 
HANDLE_OTHER_INST 
VFCmp 
VFCmpInst 

Definition at line 392 of file Instruction.h.

enum llvm::Instruction::CastOps
 

Enumeration values:
N 
OPC 
num 
opcode 
num 
opcode 
num 
opcode 
num 
opcode 
HANDLE_BINARY_INST 
Shl 
HANDLE_BINARY_INST 
LShr 
HANDLE_BINARY_INST 
AShr 
HANDLE_MEMORY_INST 
Malloc 
HANDLE_MEMORY_INST 
Alloca 
HANDLE_MEMORY_INST 
Load 
HANDLE_CAST_INST 
Trunc 
HANDLE_CAST_INST 
ZExt 
HANDLE_CAST_INST 
SExt 
HANDLE_CAST_INST 
FPToUI 
HANDLE_CAST_INST 
FPToSI 
HANDLE_CAST_INST 
UIToFP 
HANDLE_CAST_INST 
SIToFP 
HANDLE_CAST_INST 
FPTrunc 
HANDLE_CAST_INST 
FPExt 
HANDLE_CAST_INST 
PtrToInt 
HANDLE_CAST_INST 
IntToPtr 
HANDLE_CAST_INST 
BitCast 
HANDLE_OTHER_INST 
ICmp 
HANDLE_OTHER_INST 
FCmp 
HANDLE_OTHER_INST 
PHI 
HANDLE_OTHER_INST 
Call 
HANDLE_OTHER_INST 
Select 
HANDLE_OTHER_INST 
UserOp1 
HANDLE_OTHER_INST 
UserOp2 
HANDLE_OTHER_INST 
VAArg 
HANDLE_OTHER_INST 
ExtractElement 
HANDLE_OTHER_INST 
InsertElement 
HANDLE_OTHER_INST 
ShuffleVector 
HANDLE_OTHER_INST 
ExtractValue 
HANDLE_OTHER_INST 
InsertValue 
HANDLE_OTHER_INST 
VICmp 
HANDLE_OTHER_INST 
VFCmp 
VFCmpInst 

Definition at line 796 of file Instruction.h.

Referenced by foldConstantCastPair().

enum llvm::Instruction::MemoryOps
 

Enumeration values:
N 
OPC 
num 
opcode 
num 
opcode 
num 
opcode 
num 
opcode 
HANDLE_BINARY_INST 
Shl 
HANDLE_BINARY_INST 
LShr 
HANDLE_BINARY_INST 
AShr 
HANDLE_MEMORY_INST 
Malloc 
HANDLE_MEMORY_INST 
Alloca 
HANDLE_MEMORY_INST 
Load 
HANDLE_CAST_INST 
Trunc 
HANDLE_CAST_INST 
ZExt 
HANDLE_CAST_INST 
SExt 
HANDLE_CAST_INST 
FPToUI 
HANDLE_CAST_INST 
FPToSI 
HANDLE_CAST_INST 
UIToFP 
HANDLE_CAST_INST 
SIToFP 
HANDLE_CAST_INST 
FPTrunc 
HANDLE_CAST_INST 
FPExt 
HANDLE_CAST_INST 
PtrToInt 
HANDLE_CAST_INST 
IntToPtr 
HANDLE_CAST_INST 
BitCast 
HANDLE_OTHER_INST 
ICmp 
HANDLE_OTHER_INST 
FCmp 
HANDLE_OTHER_INST 
PHI 
HANDLE_OTHER_INST 
Call 
HANDLE_OTHER_INST 
Select 
HANDLE_OTHER_INST 
UserOp1 
HANDLE_OTHER_INST 
UserOp2 
HANDLE_OTHER_INST 
VAArg 
HANDLE_OTHER_INST 
ExtractElement 
HANDLE_OTHER_INST 
InsertElement 
HANDLE_OTHER_INST 
ShuffleVector 
HANDLE_OTHER_INST 
ExtractValue 
HANDLE_OTHER_INST 
InsertValue 
HANDLE_OTHER_INST 
VICmp 
HANDLE_OTHER_INST 
VFCmp 
VFCmpInst 

Definition at line 594 of file Instruction.h.

enum llvm::Instruction::OtherOps
 

Enumeration values:
N 
OPC 
num 
opcode 
num 
opcode 
num 
opcode 
num 
opcode 
HANDLE_BINARY_INST 
Shl 
HANDLE_BINARY_INST 
LShr 
HANDLE_BINARY_INST 
AShr 
HANDLE_MEMORY_INST 
Malloc 
HANDLE_MEMORY_INST 
Alloca 
HANDLE_MEMORY_INST 
Load 
HANDLE_CAST_INST 
Trunc 
HANDLE_CAST_INST 
ZExt 
HANDLE_CAST_INST 
SExt 
HANDLE_CAST_INST 
FPToUI 
HANDLE_CAST_INST 
FPToSI 
HANDLE_CAST_INST 
UIToFP 
HANDLE_CAST_INST 
SIToFP 
HANDLE_CAST_INST 
FPTrunc 
HANDLE_CAST_INST 
FPExt 
HANDLE_CAST_INST 
PtrToInt 
HANDLE_CAST_INST 
IntToPtr 
HANDLE_CAST_INST 
BitCast 
HANDLE_OTHER_INST 
ICmp 
HANDLE_OTHER_INST 
FCmp 
HANDLE_OTHER_INST 
PHI 
HANDLE_OTHER_INST 
Call 
HANDLE_OTHER_INST 
Select 
HANDLE_OTHER_INST 
UserOp1 
HANDLE_OTHER_INST 
UserOp2 
HANDLE_OTHER_INST 
VAArg 
HANDLE_OTHER_INST 
ExtractElement 
HANDLE_OTHER_INST 
InsertElement 
HANDLE_OTHER_INST 
ShuffleVector 
HANDLE_OTHER_INST 
ExtractValue 
HANDLE_OTHER_INST 
InsertValue 
HANDLE_OTHER_INST 
VICmp 
HANDLE_OTHER_INST 
VFCmp 
VFCmpInst 

Definition at line 998 of file Instruction.h.

enum llvm::Instruction::TermOps
 

Enumeration values:
N 
OPC 
num 
opcode 
num 
opcode 
num 
opcode 
num 
opcode 
HANDLE_BINARY_INST 
Shl 
HANDLE_BINARY_INST 
LShr 
HANDLE_BINARY_INST 
AShr 
HANDLE_MEMORY_INST 
Malloc 
HANDLE_MEMORY_INST 
Alloca 
HANDLE_MEMORY_INST 
Load 
HANDLE_CAST_INST 
Trunc 
HANDLE_CAST_INST 
ZExt 
HANDLE_CAST_INST 
SExt 
HANDLE_CAST_INST 
FPToUI 
HANDLE_CAST_INST 
FPToSI 
HANDLE_CAST_INST 
UIToFP 
HANDLE_CAST_INST 
SIToFP 
HANDLE_CAST_INST 
FPTrunc 
HANDLE_CAST_INST 
FPExt 
HANDLE_CAST_INST 
PtrToInt 
HANDLE_CAST_INST 
IntToPtr 
HANDLE_CAST_INST 
BitCast 
HANDLE_OTHER_INST 
ICmp 
HANDLE_OTHER_INST 
FCmp 
HANDLE_OTHER_INST 
PHI 
HANDLE_OTHER_INST 
Call 
HANDLE_OTHER_INST 
Select 
HANDLE_OTHER_INST 
UserOp1 
HANDLE_OTHER_INST 
UserOp2 
HANDLE_OTHER_INST 
VAArg 
HANDLE_OTHER_INST 
ExtractElement 
HANDLE_OTHER_INST 
InsertElement 
HANDLE_OTHER_INST 
ShuffleVector 
HANDLE_OTHER_INST 
ExtractValue 
HANDLE_OTHER_INST 
InsertValue 
HANDLE_OTHER_INST 
VICmp 
HANDLE_OTHER_INST 
VFCmp 
VFCmpInst 

Definition at line 190 of file Instruction.h.


Constructor & Destructor Documentation

Instruction::Instruction const Type Ty,
unsigned  iType,
Use Ops,
unsigned  NumOps,
Instruction InsertBefore = 0
[protected]
 

Definition at line 21 of file Instruction.cpp.

References llvm::LeakDetector::addGarbageObject(), llvm::BasicBlock::getInstList(), and getParent().

Instruction::Instruction const Type Ty,
unsigned  iType,
Use Ops,
unsigned  NumOps,
BasicBlock InsertAtEnd
[protected]
 

Definition at line 35 of file Instruction.cpp.

References llvm::LeakDetector::addGarbageObject(), and llvm::BasicBlock::getInstList().

Instruction::~Instruction  ) 
 

Definition at line 48 of file Instruction.cpp.


Member Function Documentation

bool llvm::Instruction::classof const Value V  )  [inline, static]
 

Reimplemented from llvm::User.

Reimplemented in llvm::TerminatorInst, llvm::UnaryInstruction, llvm::BinaryOperator, llvm::CastInst, llvm::CmpInst, llvm::AllocationInst, llvm::MallocInst, llvm::AllocaInst, llvm::FreeInst, llvm::LoadInst, llvm::StoreInst, llvm::GetElementPtrInst, llvm::ICmpInst, llvm::FCmpInst, llvm::VICmpInst, llvm::VFCmpInst, llvm::CallInst, llvm::SelectInst, llvm::VAArgInst, llvm::ExtractElementInst, llvm::InsertElementInst, llvm::ShuffleVectorInst, llvm::ExtractValueInst, llvm::InsertValueInst, llvm::PHINode, llvm::ReturnInst, llvm::BranchInst, llvm::SwitchInst, llvm::InvokeInst, llvm::UnwindInst, llvm::UnreachableInst, llvm::TruncInst, llvm::ZExtInst, llvm::SExtInst, llvm::FPTruncInst, llvm::FPExtInst, llvm::UIToFPInst, llvm::SIToFPInst, llvm::FPToUIInst, llvm::FPToSIInst, llvm::IntToPtrInst, llvm::PtrToIntInst, llvm::BitCastInst, llvm::IntrinsicInst, llvm::DbgInfoIntrinsic, llvm::DbgStopPointInst, llvm::DbgFuncStartInst, llvm::DbgRegionStartInst, llvm::DbgRegionEndInst, llvm::DbgDeclareInst, llvm::MemIntrinsic, llvm::MemCpyInst, llvm::MemMoveInst, llvm::MemSetInst, and DummyInst.

Definition at line 183 of file Instruction.h.

References llvm::Value::getValueID().

bool llvm::Instruction::classof const Instruction  )  [inline, static]
 

Methods for support type inquiry through isa, cast, and dyn_cast:.

Reimplemented in llvm::TerminatorInst, llvm::UnaryInstruction, llvm::BinaryOperator, llvm::CastInst, llvm::CmpInst, llvm::AllocationInst, llvm::MallocInst, llvm::AllocaInst, llvm::FreeInst, llvm::LoadInst, llvm::StoreInst, llvm::GetElementPtrInst, llvm::ICmpInst, llvm::FCmpInst, llvm::VICmpInst, llvm::VFCmpInst, llvm::CallInst, llvm::SelectInst, llvm::VAArgInst, llvm::ExtractElementInst, llvm::InsertElementInst, llvm::ShuffleVectorInst, llvm::ExtractValueInst, llvm::InsertValueInst, llvm::PHINode, llvm::ReturnInst, llvm::BranchInst, llvm::SwitchInst, llvm::InvokeInst, llvm::UnwindInst, llvm::UnreachableInst, llvm::TruncInst, llvm::ZExtInst, llvm::SExtInst, llvm::FPTruncInst, llvm::FPExtInst, llvm::UIToFPInst, llvm::SIToFPInst, llvm::FPToUIInst, llvm::FPToSIInst, llvm::IntToPtrInst, llvm::PtrToIntInst, llvm::BitCastInst, and DummyInst.

Definition at line 182 of file Instruction.h.

virtual Instruction* llvm::Instruction::clone  )  const [pure virtual]
 

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

Implemented in llvm::TerminatorInst, llvm::BinaryOperator, llvm::AllocationInst, llvm::MallocInst, llvm::AllocaInst, llvm::FreeInst, llvm::LoadInst, llvm::StoreInst, llvm::GetElementPtrInst, llvm::ICmpInst, llvm::FCmpInst, llvm::VICmpInst, llvm::VFCmpInst, llvm::CallInst, llvm::SelectInst, llvm::VAArgInst, llvm::ExtractElementInst, llvm::InsertElementInst, llvm::ShuffleVectorInst, llvm::ExtractValueInst, llvm::InsertValueInst, llvm::PHINode, llvm::ReturnInst, llvm::BranchInst, llvm::SwitchInst, llvm::InvokeInst, llvm::UnwindInst, llvm::UnreachableInst, llvm::TruncInst, llvm::ZExtInst, llvm::SExtInst, llvm::FPTruncInst, llvm::FPExtInst, llvm::UIToFPInst, llvm::SIToFPInst, llvm::FPToUIInst, llvm::FPToSIInst, llvm::IntToPtrInst, llvm::PtrToIntInst, llvm::BitCastInst, and DummyInst.

Referenced by FoldBranchToCommonDest(), HoistThenElseCodeToIf(), and ProfilerRS::Translate().

void Instruction::eraseFromParent  ) 
 

eraseFromParent - This method unlinks 'this' from the containing basic block and deletes it.

Definition at line 67 of file Instruction.cpp.

References llvm::BasicBlock::getInstList(), and getParent().

Referenced by AddReachableCodeToWorklist(), BreakUpSubtract(), BuildSubAggregate(), CleanupConstantGlobalUsers(), llvm::CloneAndPruneFunctionInto(), llvm::ConstantFoldTerminator(), ConstantPropUsersOf(), ConvertShiftToMul(), DSE::DeleteDeadInstructionChains(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), InstCombiner::DoOneIteration(), EraseDeadInstructions(), InstCombiner::EraseInstFromFunction(), ErasePossiblyDeadInstructionTree(), FindPHIToPartitionLoops(), FoldCondBranchOnPHI(), DSE::handleEndBlock(), DSE::handleFreeWithNonTrivialDependency(), HandleInlinedInvoke(), HoistThenElseCodeToIf(), llvm::InlineFunction(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeCmpExpression(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), ShadowStackGC::performCustomLowering(), PerformHeapAllocSRoA(), SROA::performScalarRepl(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), DSE::RemoveUndeadPointers(), ReplaceUsesOfMallocWithGlobal(), RewriteHeapSROALoadUser(), PromoteMem2Reg::run(), DSE::runOnBasicBlock(), TailCallElim::runOnFunction(), SimplifyLibCalls::runOnFunction(), SCCP::runOnFunction(), LoopSimplify::runOnFunction(), DCE::runOnFunction(), ConstantPropagation::runOnFunction(), StripSymbols::runOnModule(), IPSCCP::runOnModule(), RaiseAllocations::runOnModule(), llvm::SimplifyCFG(), SimplifyCondBranchToTwoReturns(), SimplifyEqualityComparisonWithOnlyPredecessor(), llvm::SplitBlockPredecessors(), SRAGlobal(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UpgradeIntrinsicCall(), InstCombiner::visitBranchInst(), and LowerSetJmp::visitCallInst().

unsigned llvm::Instruction::getOpcode  )  const [inline]
 

Subclass classification... getOpcode() returns a member of one of the enums that is coming soon (down below)...

Reimplemented in llvm::BinaryOperator, llvm::CastInst, llvm::CmpInst, and llvm::SelectInst.

Definition at line 113 of file Instruction.h.

Referenced by AddressMightEscape(), FoldICmpLogical::apply(), AssociativeOpt(), llvm::CannotBeNegativeZero(), CheapToScalarize(), llvm::InsertValueInst::classof(), llvm::ExtractValueInst::classof(), llvm::ShuffleVectorInst::classof(), llvm::InsertElementInst::classof(), llvm::ExtractElementInst::classof(), llvm::VAArgInst::classof(), llvm::SelectInst::classof(), llvm::CallInst::classof(), llvm::VFCmpInst::classof(), llvm::VICmpInst::classof(), llvm::FCmpInst::classof(), llvm::ICmpInst::classof(), llvm::GetElementPtrInst::classof(), llvm::StoreInst::classof(), llvm::LoadInst::classof(), llvm::FreeInst::classof(), llvm::AllocaInst::classof(), llvm::MallocInst::classof(), llvm::AllocationInst::classof(), llvm::UnaryInstruction::classof(), llvm::TerminatorInst::classof(), DummyInst::classof(), CollectBSwapParts(), InstCombiner::commonIDivTransforms(), InstCombiner::commonIntCastTransforms(), llvm::ConstantFoldInstruction(), PruningFunctionCloner::ConstantFoldMappedInstruction(), DominatesMergePoint(), dyn_castFoldableMul(), EvaluateExpression(),