forked from OSchip/llvm-project
Respond to Chris' review:
Make InsertDbgValueIntrinsic() and get Offset take and recieve a uint64_t. Get constness correct for getVariable() and getValue(). llvm-svn: 93149
This commit is contained in:
parent
e47550e452
commit
9ce5b5134d
|
@ -647,11 +647,11 @@ namespace llvm {
|
|||
Instruction *InsertBefore);
|
||||
|
||||
/// InsertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
|
||||
Instruction *InsertDbgValueIntrinsic(llvm::Value *V, llvm::Value *Offset,
|
||||
Instruction *InsertDbgValueIntrinsic(llvm::Value *V, uint64_t Offset,
|
||||
DIVariable D, BasicBlock *InsertAtEnd);
|
||||
|
||||
/// InsertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
|
||||
Instruction *InsertDbgValueIntrinsic(llvm::Value *V, llvm::Value *Offset,
|
||||
Instruction *InsertDbgValueIntrinsic(llvm::Value *V, uint64_t Offset,
|
||||
DIVariable D, Instruction *InsertBefore);
|
||||
private:
|
||||
Constant *GetTagConstant(unsigned TAG);
|
||||
|
|
|
@ -99,9 +99,14 @@ namespace llvm {
|
|||
///
|
||||
class DbgValueInst : public DbgInfoIntrinsic {
|
||||
public:
|
||||
Value *getValue() const;
|
||||
Value *getOffset() const { return getOperand(2); }
|
||||
MDNode *getVariable() const { return cast<MDNode>(getOperand(3)); }
|
||||
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; }
|
||||
|
|
|
@ -1033,7 +1033,7 @@ DILocation DIFactory::CreateLocation(unsigned LineNo, unsigned ColumnNo,
|
|||
|
||||
/// InsertDeclare - Insert a new llvm.dbg.declare intrinsic call.
|
||||
Instruction *DIFactory::InsertDeclare(Value *Storage, DIVariable D,
|
||||
Instruction *InsertBefore) {
|
||||
Instruction *InsertBefore) {
|
||||
// Cast the storage to a {}* for the call to llvm.dbg.declare.
|
||||
Storage = new BitCastInst(Storage, EmptyStructPtr, "", InsertBefore);
|
||||
|
||||
|
@ -1046,7 +1046,7 @@ Instruction *DIFactory::InsertDeclare(Value *Storage, DIVariable D,
|
|||
|
||||
/// InsertDeclare - Insert a new llvm.dbg.declare intrinsic call.
|
||||
Instruction *DIFactory::InsertDeclare(Value *Storage, DIVariable D,
|
||||
BasicBlock *InsertAtEnd) {
|
||||
BasicBlock *InsertAtEnd) {
|
||||
// Cast the storage to a {}* for the call to llvm.dbg.declare.
|
||||
Storage = new BitCastInst(Storage, EmptyStructPtr, "", InsertAtEnd);
|
||||
|
||||
|
@ -1058,31 +1058,31 @@ Instruction *DIFactory::InsertDeclare(Value *Storage, DIVariable D,
|
|||
}
|
||||
|
||||
/// InsertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
|
||||
Instruction *DIFactory::InsertDbgValueIntrinsic(Value *V, Value *Offset,
|
||||
Instruction *DIFactory::InsertDbgValueIntrinsic(Value *V, uint64_t Offset,
|
||||
DIVariable D,
|
||||
Instruction *InsertBefore) {
|
||||
assert(V && "no value passed to dbg.value");
|
||||
assert(Offset->getType()->isInteger(64) && "offset must be i64");
|
||||
if (!ValueFn)
|
||||
ValueFn = Intrinsic::getDeclaration(&M, Intrinsic::dbg_value);
|
||||
|
||||
Value *Elts[] = { V };
|
||||
Value *Args[] = { MDNode::get(V->getContext(), Elts, 1), Offset,
|
||||
Value *Args[] = { MDNode::get(V->getContext(), Elts, 1),
|
||||
ConstantInt::get(Type::getInt64Ty(V->getContext()), Offset),
|
||||
D.getNode() };
|
||||
return CallInst::Create(ValueFn, Args, Args+3, "", InsertBefore);
|
||||
}
|
||||
|
||||
/// InsertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
|
||||
Instruction *DIFactory::InsertDbgValueIntrinsic(Value *V, Value *Offset,
|
||||
Instruction *DIFactory::InsertDbgValueIntrinsic(Value *V, uint64_t Offset,
|
||||
DIVariable D,
|
||||
BasicBlock *InsertAtEnd) {
|
||||
assert(V && "no value passed to dbg.value");
|
||||
assert(Offset->getType()->isInteger(64) && "offset must be i64");
|
||||
if (!ValueFn)
|
||||
ValueFn = Intrinsic::getDeclaration(&M, Intrinsic::dbg_value);
|
||||
|
||||
Value *Elts[] = { V };
|
||||
Value *Args[] = { MDNode::get(V->getContext(), Elts, 1), Offset,
|
||||
Value *Args[] = { MDNode::get(V->getContext(), Elts, 1),
|
||||
ConstantInt::get(Type::getInt64Ty(V->getContext()), Offset),
|
||||
D.getNode() };
|
||||
return CallInst::Create(ValueFn, Args, Args+3, "", InsertAtEnd);
|
||||
}
|
||||
|
|
|
@ -54,6 +54,10 @@ Value *DbgInfoIntrinsic::StripCast(Value *C) {
|
|||
/// DbgValueInst - This represents the llvm.dbg.value instruction.
|
||||
///
|
||||
|
||||
Value *DbgValueInst::getValue() const {
|
||||
const Value *DbgValueInst::getValue() const {
|
||||
return cast<MDNode>(getOperand(1))->getOperand(0);
|
||||
}
|
||||
|
||||
Value *DbgValueInst::getValue() {
|
||||
return cast<MDNode>(getOperand(1))->getOperand(0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue