X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FVMCore%2FIntrinsicInst.cpp;h=ac8ec2086b18f58d42d204c4ac23f9faa020840d;hb=3bde6fe0df05558b89e7edfe48ac05da59beb81a;hp=312a47f2c70c3e8f94a3172a898185b5966ad4ec;hpb=0d2b0aba424bd3959bb5c807873def8f53e57a3c;p=oota-llvm.git diff --git a/lib/VMCore/IntrinsicInst.cpp b/lib/VMCore/IntrinsicInst.cpp index 312a47f2c70..ac8ec2086b1 100644 --- a/lib/VMCore/IntrinsicInst.cpp +++ b/lib/VMCore/IntrinsicInst.cpp @@ -8,11 +8,7 @@ //===----------------------------------------------------------------------===// // // This file implements methods that make it really easy to deal with intrinsic -// functions with the isa/dyncast family of functions. In particular, this -// allows you to do things like: -// -// if (DbgStopPointInst *SPI = dyn_cast(Inst)) -// ... SPI->getFileName() ... SPI->getDirectory() ... +// functions. // // All intrinsic function calls are instances of the call instruction, so these // are all subclasses of the CallInst class. Note that none of these classes @@ -28,8 +24,7 @@ #include "llvm/IntrinsicInst.h" #include "llvm/Constants.h" #include "llvm/GlobalVariable.h" -#include "llvm/Analysis/ValueTracking.h" -#include "llvm/CodeGen/MachineModuleInfo.h" +#include "llvm/Metadata.h" using namespace llvm; //===----------------------------------------------------------------------===// @@ -55,23 +50,24 @@ Value *DbgInfoIntrinsic::StripCast(Value *C) { } //===----------------------------------------------------------------------===// -/// DbgStopPointInst - This represents the llvm.dbg.stoppoint instruction. +/// DbgDeclareInst - This represents the llvm.dbg.declare instruction. +/// + +Value *DbgDeclareInst::getAddress() const { + if (MDNode* MD = cast_or_null(getArgOperand(0))) + return MD->getOperand(0); + else + return NULL; +} + +//===----------------------------------------------------------------------===// +/// DbgValueInst - This represents the llvm.dbg.value instruction. /// -Value *DbgStopPointInst::getFileName() const { - // Once the operand indices are verified, update this assert - assert(LLVMDebugVersion == (6 << 16) && "Verify operand indices"); - GlobalVariable *GV = cast(getContext()); - if (!GV->hasInitializer()) return NULL; - ConstantStruct *CS = cast(GV->getInitializer()); - return CS->getOperand(4); +const Value *DbgValueInst::getValue() const { + return cast(getArgOperand(0))->getOperand(0); } -Value *DbgStopPointInst::getDirectory() const { - // Once the operand indices are verified, update this assert - assert(LLVMDebugVersion == (6 << 16) && "Verify operand indices"); - GlobalVariable *GV = cast(getContext()); - if (!GV->hasInitializer()) return NULL; - ConstantStruct *CS = cast(GV->getInitializer()); - return CS->getOperand(4); +Value *DbgValueInst::getValue() { + return cast(getArgOperand(0))->getOperand(0); }