LLVM API Documentation
Evaluate the size and offset of an object ponted by a Value* statically. Fails if size or offset are not known at compile time. More...
#include <MemoryBuiltins.h>


Evaluate the size and offset of an object ponted by a Value* statically. Fails if size or offset are not known at compile time.
Definition at line 155 of file MemoryBuiltins.h.
| ObjectSizeOffsetVisitor::ObjectSizeOffsetVisitor | ( | const DataLayout * | TD, |
| const TargetLibraryInfo * | TLI, | ||
| LLVMContext & | Context, | ||
| bool | RoundToAlign = false |
||
| ) |
Definition at line 383 of file MemoryBuiltins.cpp.
References llvm::IntegerType::getBitWidth(), llvm::DataLayout::getIntPtrType(), and llvm::APInt::getNullValue().
| bool llvm::ObjectSizeOffsetVisitor::bothKnown | ( | SizeOffsetType & | SizeOffset | ) | [inline] |
Definition at line 185 of file MemoryBuiltins.h.
References knownOffset(), and knownSize().
Referenced by visitGEPOperator(), and visitSelectInst().
| SizeOffsetType ObjectSizeOffsetVisitor::compute | ( | Value * | V | ) |
Definition at line 393 of file MemoryBuiltins.cpp.
References llvm::ARM_PROC::A, llvm::dbgs(), DEBUG, llvm::ARM_PROC::I, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::IntToPtr, P, llvm::Value::stripPointerCasts(), visitArgument(), visitConstantPointerNull(), visitGEPOperator(), visitGlobalAlias(), visitGlobalVariable(), and visitUndefValue().
Referenced by visitGEPOperator(), visitGlobalAlias(), and visitSelectInst().
| bool llvm::ObjectSizeOffsetVisitor::knownOffset | ( | SizeOffsetType & | SizeOffset | ) | [inline] |
Definition at line 181 of file MemoryBuiltins.h.
Referenced by bothKnown().
| bool llvm::ObjectSizeOffsetVisitor::knownSize | ( | SizeOffsetType & | SizeOffset | ) | [inline] |
Definition at line 177 of file MemoryBuiltins.h.
Referenced by bothKnown().
| SizeOffsetType ObjectSizeOffsetVisitor::visitAllocaInst | ( | AllocaInst & | I | ) |
| SizeOffsetType ObjectSizeOffsetVisitor::visitArgument | ( | Argument & | A | ) |
Definition at line 443 of file MemoryBuiltins.cpp.
References llvm::SequentialType::getElementType(), llvm::Argument::getParamAlignment(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), and llvm::Argument::hasByValAttr().
Referenced by compute().
| SizeOffsetType ObjectSizeOffsetVisitor::visitCallSite | ( | CallSite | CS | ) |
Definition at line 454 of file MemoryBuiltins.cpp.
References AllocFnsTy::AllocTy, AnyAlloc, llvm::dyn_cast(), AllocFnsTy::FstParam, getAllocationData(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgument(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::GetStringLength(), llvm::ConstantInt::getValue(), AllocFnsTy::SndParam, StrDupLike, llvm::APInt::ugt(), and llvm::APInt::zextOrSelf().
| SizeOffsetType ObjectSizeOffsetVisitor::visitConstantPointerNull | ( | ConstantPointerNull & | ) |
Definition at line 505 of file MemoryBuiltins.cpp.
Referenced by compute().
| SizeOffsetType ObjectSizeOffsetVisitor::visitExtractElementInst | ( | ExtractElementInst & | I | ) |
Definition at line 510 of file MemoryBuiltins.cpp.
| SizeOffsetType ObjectSizeOffsetVisitor::visitExtractValueInst | ( | ExtractValueInst & | I | ) |
Definition at line 515 of file MemoryBuiltins.cpp.
| SizeOffsetType ObjectSizeOffsetVisitor::visitGEPOperator | ( | GEPOperator & | GEP | ) |
Definition at line 520 of file MemoryBuiltins.cpp.
References llvm::GEPOperator::accumulateConstantOffset(), bothKnown(), compute(), and llvm::GEPOperator::getPointerOperand().
Referenced by compute().
| SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalAlias | ( | GlobalAlias & | GA | ) |
Definition at line 529 of file MemoryBuiltins.cpp.
References compute(), llvm::GlobalAlias::getAliasee(), and llvm::GlobalValue::mayBeOverridden().
Referenced by compute().
| SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalVariable | ( | GlobalVariable & | GV | ) |
Definition at line 535 of file MemoryBuiltins.cpp.
References llvm::GlobalValue::getAlignment(), llvm::SequentialType::getElementType(), llvm::GlobalValue::getType(), llvm::DataLayout::getTypeAllocSize(), and llvm::GlobalVariable::hasDefinitiveInitializer().
Referenced by compute().
| SizeOffsetType ObjectSizeOffsetVisitor::visitInstruction | ( | Instruction & | I | ) |
Definition at line 570 of file MemoryBuiltins.cpp.
References llvm::dbgs(), and DEBUG.
| SizeOffsetType ObjectSizeOffsetVisitor::visitIntToPtrInst | ( | IntToPtrInst & | ) |
Definition at line 543 of file MemoryBuiltins.cpp.
| SizeOffsetType ObjectSizeOffsetVisitor::visitLoadInst | ( | LoadInst & | I | ) |
Definition at line 548 of file MemoryBuiltins.cpp.
| SizeOffsetType ObjectSizeOffsetVisitor::visitPHINode | ( | PHINode & | ) |
Definition at line 553 of file MemoryBuiltins.cpp.
| SizeOffsetType ObjectSizeOffsetVisitor::visitSelectInst | ( | SelectInst & | I | ) |
Definition at line 558 of file MemoryBuiltins.cpp.
References bothKnown(), compute(), llvm::SelectInst::getFalseValue(), and llvm::SelectInst::getTrueValue().
| SizeOffsetType ObjectSizeOffsetVisitor::visitUndefValue | ( | UndefValue & | ) |
Definition at line 566 of file MemoryBuiltins.cpp.
Referenced by compute().