mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 16:17:17 +00:00
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107144 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -43,7 +43,7 @@ namespace llvm {
|
|||||||
Intrinsic::ID getIntrinsicID() const {
|
Intrinsic::ID getIntrinsicID() const {
|
||||||
return (Intrinsic::ID)getCalledFunction()->getIntrinsicID();
|
return (Intrinsic::ID)getCalledFunction()->getIntrinsicID();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 IntrinsicInst *) { return true; }
|
static inline bool classof(const IntrinsicInst *) { return true; }
|
||||||
static inline bool classof(const CallInst *I) {
|
static inline bool classof(const CallInst *I) {
|
||||||
@@ -74,7 +74,7 @@ namespace llvm {
|
|||||||
static inline bool classof(const Value *V) {
|
static inline bool classof(const Value *V) {
|
||||||
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Value *StripCast(Value *C);
|
static Value *StripCast(Value *C);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ namespace llvm {
|
|||||||
class DbgDeclareInst : public DbgInfoIntrinsic {
|
class DbgDeclareInst : public DbgInfoIntrinsic {
|
||||||
public:
|
public:
|
||||||
Value *getAddress() const;
|
Value *getAddress() const;
|
||||||
MDNode *getVariable() const { return cast<MDNode>(getOperand(2)); }
|
MDNode *getVariable() const { return cast<MDNode>(getArgOperand(1)); }
|
||||||
|
|
||||||
// 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 DbgDeclareInst *) { return true; }
|
static inline bool classof(const DbgDeclareInst *) { return true; }
|
||||||
@@ -103,9 +103,9 @@ namespace llvm {
|
|||||||
Value *getValue();
|
Value *getValue();
|
||||||
uint64_t getOffset() const {
|
uint64_t getOffset() const {
|
||||||
return cast<ConstantInt>(
|
return cast<ConstantInt>(
|
||||||
const_cast<Value*>(getOperand(2)))->getZExtValue();
|
const_cast<Value*>(getArgOperand(1)))->getZExtValue();
|
||||||
}
|
}
|
||||||
MDNode *getVariable() const { return cast<MDNode>(getOperand(3)); }
|
MDNode *getVariable() const { return cast<MDNode>(getArgOperand(2)); }
|
||||||
|
|
||||||
// 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 DbgValueInst *) { return true; }
|
static inline bool classof(const DbgValueInst *) { return true; }
|
||||||
@@ -121,19 +121,19 @@ namespace llvm {
|
|||||||
///
|
///
|
||||||
class MemIntrinsic : public IntrinsicInst {
|
class MemIntrinsic : public IntrinsicInst {
|
||||||
public:
|
public:
|
||||||
Value *getRawDest() const { return const_cast<Value*>(getOperand(1)); }
|
Value *getRawDest() const { return const_cast<Value*>(getArgOperand(0)); }
|
||||||
|
|
||||||
Value *getLength() const { return const_cast<Value*>(getOperand(3)); }
|
Value *getLength() const { return const_cast<Value*>(getArgOperand(2)); }
|
||||||
ConstantInt *getAlignmentCst() const {
|
ConstantInt *getAlignmentCst() const {
|
||||||
return cast<ConstantInt>(const_cast<Value*>(getOperand(4)));
|
return cast<ConstantInt>(const_cast<Value*>(getArgOperand(3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getAlignment() const {
|
unsigned getAlignment() const {
|
||||||
return getAlignmentCst()->getZExtValue();
|
return getAlignmentCst()->getZExtValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
ConstantInt *getVolatileCst() const {
|
ConstantInt *getVolatileCst() const {
|
||||||
return cast<ConstantInt>(const_cast<Value*>(getOperand(5)));
|
return cast<ConstantInt>(const_cast<Value*>(getArgOperand(4)));
|
||||||
}
|
}
|
||||||
bool isVolatile() const {
|
bool isVolatile() const {
|
||||||
return !getVolatileCst()->isZero();
|
return !getVolatileCst()->isZero();
|
||||||
@@ -149,27 +149,27 @@ namespace llvm {
|
|||||||
void setDest(Value *Ptr) {
|
void setDest(Value *Ptr) {
|
||||||
assert(getRawDest()->getType() == Ptr->getType() &&
|
assert(getRawDest()->getType() == Ptr->getType() &&
|
||||||
"setDest called with pointer of wrong type!");
|
"setDest called with pointer of wrong type!");
|
||||||
setOperand(1, Ptr);
|
setArgOperand(0, Ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setLength(Value *L) {
|
void setLength(Value *L) {
|
||||||
assert(getLength()->getType() == L->getType() &&
|
assert(getLength()->getType() == L->getType() &&
|
||||||
"setLength called with value of wrong type!");
|
"setLength called with value of wrong type!");
|
||||||
setOperand(3, L);
|
setArgOperand(2, L);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setAlignment(Constant* A) {
|
void setAlignment(Constant* A) {
|
||||||
setOperand(4, A);
|
setArgOperand(3, A);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setVolatile(Constant* V) {
|
void setVolatile(Constant* V) {
|
||||||
setOperand(5, V);
|
setArgOperand(4, V);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Type *getAlignmentType() const {
|
const Type *getAlignmentType() const {
|
||||||
return getOperand(4)->getType();
|
return getArgOperand(3)->getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 MemIntrinsic *) { return true; }
|
static inline bool classof(const MemIntrinsic *) { return true; }
|
||||||
static inline bool classof(const IntrinsicInst *I) {
|
static inline bool classof(const IntrinsicInst *I) {
|
||||||
@@ -192,14 +192,14 @@ namespace llvm {
|
|||||||
public:
|
public:
|
||||||
/// get* - Return the arguments to the instruction.
|
/// get* - Return the arguments to the instruction.
|
||||||
///
|
///
|
||||||
Value *getValue() const { return const_cast<Value*>(getOperand(2)); }
|
Value *getValue() const { return const_cast<Value*>(getArgOperand(1)); }
|
||||||
|
|
||||||
void setValue(Value *Val) {
|
void setValue(Value *Val) {
|
||||||
assert(getValue()->getType() == Val->getType() &&
|
assert(getValue()->getType() == Val->getType() &&
|
||||||
"setSource called with pointer of wrong type!");
|
"setValue called with value of wrong type!");
|
||||||
setOperand(2, Val);
|
setArgOperand(1, Val);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 MemSetInst *) { return true; }
|
static inline bool classof(const MemSetInst *) { return true; }
|
||||||
static inline bool classof(const IntrinsicInst *I) {
|
static inline bool classof(const IntrinsicInst *I) {
|
||||||
@@ -209,26 +209,26 @@ namespace llvm {
|
|||||||
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// MemTransferInst - This class wraps the llvm.memcpy/memmove intrinsics.
|
/// MemTransferInst - This class wraps the llvm.memcpy/memmove intrinsics.
|
||||||
///
|
///
|
||||||
class MemTransferInst : public MemIntrinsic {
|
class MemTransferInst : public MemIntrinsic {
|
||||||
public:
|
public:
|
||||||
/// get* - Return the arguments to the instruction.
|
/// get* - Return the arguments to the instruction.
|
||||||
///
|
///
|
||||||
Value *getRawSource() const { return const_cast<Value*>(getOperand(2)); }
|
Value *getRawSource() const { return const_cast<Value*>(getArgOperand(1)); }
|
||||||
|
|
||||||
/// getSource - This is just like getRawSource, but it strips off any cast
|
/// getSource - This is just like getRawSource, but it strips off any cast
|
||||||
/// instructions that feed it, giving the original input. The returned
|
/// instructions that feed it, giving the original input. The returned
|
||||||
/// value is guaranteed to be a pointer.
|
/// value is guaranteed to be a pointer.
|
||||||
Value *getSource() const { return getRawSource()->stripPointerCasts(); }
|
Value *getSource() const { return getRawSource()->stripPointerCasts(); }
|
||||||
|
|
||||||
void setSource(Value *Ptr) {
|
void setSource(Value *Ptr) {
|
||||||
assert(getRawSource()->getType() == Ptr->getType() &&
|
assert(getRawSource()->getType() == Ptr->getType() &&
|
||||||
"setSource called with pointer of wrong type!");
|
"setSource called with pointer of wrong type!");
|
||||||
setOperand(2, Ptr);
|
setArgOperand(1, Ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 MemTransferInst *) { return true; }
|
static inline bool classof(const MemTransferInst *) { return true; }
|
||||||
static inline bool classof(const IntrinsicInst *I) {
|
static inline bool classof(const IntrinsicInst *I) {
|
||||||
@@ -239,8 +239,8 @@ namespace llvm {
|
|||||||
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/// MemCpyInst - This class wraps the llvm.memcpy intrinsic.
|
/// MemCpyInst - This class wraps the llvm.memcpy intrinsic.
|
||||||
///
|
///
|
||||||
class MemCpyInst : public MemTransferInst {
|
class MemCpyInst : public MemTransferInst {
|
||||||
@@ -282,7 +282,7 @@ namespace llvm {
|
|||||||
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// MemoryUseIntrinsic - This is the common base class for the memory use
|
/// MemoryUseIntrinsic - This is the common base class for the memory use
|
||||||
/// marker intrinsics.
|
/// marker intrinsics.
|
||||||
///
|
///
|
||||||
|
Reference in New Issue
Block a user