mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
Add a new debug intrinsic parent class. Patch contributed by Michael
McCracken, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18107 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ea3065fc64
commit
3e775143fb
@ -42,11 +42,37 @@ namespace llvm {
|
||||
static Value *StripPointerCasts(Value *Ptr);
|
||||
};
|
||||
|
||||
/// DbgStopPointInst - This represent llvm.dbg.stoppoint instructions.
|
||||
/// DbgInfoIntrinsic - This is the common base class for debug info intrinsics
|
||||
///
|
||||
struct DbgStopPointInst : public IntrinsicInst {
|
||||
struct DbgInfoIntrinsic : public IntrinsicInst {
|
||||
|
||||
Value *getChain() const { return const_cast<Value*>(getOperand(1)); }
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const DbgInfoIntrinsic *) { return true; }
|
||||
static inline bool classof(const CallInst *I) {
|
||||
if (const Function *CF = I->getCalledFunction())
|
||||
switch (CF->getIntrinsicID()) {
|
||||
case Intrinsic::dbg_stoppoint:
|
||||
case Intrinsic::dbg_region_start:
|
||||
case Intrinsic::dbg_region_end:
|
||||
case Intrinsic::dbg_func_start:
|
||||
case Intrinsic::dbg_declare:
|
||||
return true;
|
||||
default: break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
static inline bool classof(const Value *V) {
|
||||
return isa<CallInst>(V) && classof(cast<CallInst>(V));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/// DbgStopPointInst - This represent llvm.dbg.stoppoint instructions.
|
||||
///
|
||||
struct DbgStopPointInst : public DbgInfoIntrinsic {
|
||||
|
||||
unsigned getLineNo() const {
|
||||
return cast<ConstantInt>(getOperand(2))->getRawValue();
|
||||
}
|
||||
@ -68,8 +94,6 @@ namespace llvm {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/// MemIntrinsic - This is the common base class for memset/memcpy/memmove.
|
||||
///
|
||||
struct MemIntrinsic : public IntrinsicInst {
|
||||
|
Loading…
x
Reference in New Issue
Block a user