/// DbgInfoIntrinsic - This is the common base class for debug info intrinsics
///
- struct DbgInfoIntrinsic : public IntrinsicInst {
+ class DbgInfoIntrinsic : public IntrinsicInst {
+ public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const DbgInfoIntrinsic *) { return true; }
/// DbgDeclareInst - This represents the llvm.dbg.declare instruction.
///
- struct DbgDeclareInst : public DbgInfoIntrinsic {
- Value *getAddress() const { return getOperand(1); }
+ class DbgDeclareInst : public DbgInfoIntrinsic {
+ public:
+ Value *getAddress() const;
MDNode *getVariable() const { return cast<MDNode>(getOperand(2)); }
// Methods for support type inquiry through isa, cast, and dyn_cast:
/// DbgValueInst - This represents the llvm.dbg.value instruction.
///
- struct DbgValueInst : public DbgInfoIntrinsic {
- Value *getValue() const;
- Value *getOffset() const { return getOperand(2); }
- MDNode *getVariable() const { return cast<MDNode>(getOperand(3)); }
+ class DbgValueInst : public DbgInfoIntrinsic {
+ public:
+ const Value *getValue() const;
+ Value *getValue();
+ uint64_t getOffset() const {
+ return cast<ConstantInt>(
+ const_cast<Value*>(getOperand(2)))->getZExtValue();
+ }
+ const MDNode *getVariable() const { return cast<MDNode>(getOperand(3)); }
+ MDNode *getVariable() { return cast<MDNode>(getOperand(3)); }
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const DbgValueInst *) { return true; }
/// MemIntrinsic - This is the common base class for memset/memcpy/memmove.
///
- struct MemIntrinsic : public IntrinsicInst {
+ class MemIntrinsic : public IntrinsicInst {
+ public:
Value *getRawDest() const { return const_cast<Value*>(getOperand(1)); }
Value *getLength() const { return const_cast<Value*>(getOperand(3)); }
/// MemSetInst - This class wraps the llvm.memset intrinsic.
///
- struct MemSetInst : public MemIntrinsic {
+ class MemSetInst : public MemIntrinsic {
+ public:
/// get* - Return the arguments to the instruction.
///
Value *getValue() const { return const_cast<Value*>(getOperand(2)); }
/// MemTransferInst - This class wraps the llvm.memcpy/memmove intrinsics.
///
- struct MemTransferInst : public MemIntrinsic {
+ class MemTransferInst : public MemIntrinsic {
+ public:
/// get* - Return the arguments to the instruction.
///
Value *getRawSource() const { return const_cast<Value*>(getOperand(2)); }
/// MemCpyInst - This class wraps the llvm.memcpy intrinsic.
///
- struct MemCpyInst : public MemTransferInst {
+ class MemCpyInst : public MemTransferInst {
+ public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MemCpyInst *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
/// MemMoveInst - This class wraps the llvm.memmove intrinsic.
///
- struct MemMoveInst : public MemTransferInst {
+ class MemMoveInst : public MemTransferInst {
+ public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MemMoveInst *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
/// EHSelectorInst - This represents the llvm.eh.selector instruction.
///
- struct EHSelectorInst : public IntrinsicInst {
+ class EHSelectorInst : public IntrinsicInst {
+ public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const EHSelectorInst *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
/// MemoryUseIntrinsic - This is the common base class for the memory use
/// marker intrinsics.
///
- struct MemoryUseIntrinsic : public IntrinsicInst {
+ class MemoryUseIntrinsic : public IntrinsicInst {
+ public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MemoryUseIntrinsic *) { return true; }