LLVM API Documentation
#include <Value.h>
Inheritance diagram for llvm::Value:
Public Types | |
enum | ValueTy { ArgumentVal, BasicBlockVal, FunctionVal, GlobalVariableVal, UndefValueVal, ConstantExprVal, ConstantAggregateZeroVal, ConstantBoolVal, ConstantSIntVal, ConstantUIntVal, ConstantFPVal, ConstantArrayVal, ConstantStructVal, ConstantPackedVal, ConstantPointerNullVal, InlineAsmVal, InstructionVal, ConstantFirstVal = FunctionVal, ConstantLastVal = ConstantPointerNullVal } |
typedef value_use_iterator< User > | use_iterator |
typedef value_use_iterator< const User > | use_const_iterator |
Public Member Functions | |
Value (const Type *Ty, unsigned scid, const std::string &name="") | |
virtual | ~Value () |
virtual void | dump () const |
dump - Support for debugging, callable in GDB: V->dump() | |
virtual void | print (std::ostream &O) const=0 |
const Type * | getType () const |
bool | hasName () const |
const std::string & | getName () const |
void | setName (const std::string &name) |
void | replaceAllUsesWith (Value *V) |
void | uncheckedReplaceAllUsesWith (Value *V) |
bool | use_empty () const |
use_iterator | use_begin () |
use_const_iterator | use_begin () const |
use_iterator | use_end () |
use_const_iterator | use_end () const |
User * | use_back () |
const User * | use_back () const |
bool | hasOneUse () const |
bool | hasNUses (unsigned N) const |
bool | hasNUsesOrMore (unsigned N) const |
unsigned | getNumUses () const |
void | addUse (Use &U) |
unsigned | getValueType () const |
const Type * | getRawType () const |
Static Public Member Functions | |
static bool | classof (const Value *) |
Protected Attributes | |
unsigned short | SubclassData |
Friends | |
class | ValueSymbolTable |
class | SymbolTable |
class | Instruction |
This is a very important LLVM class. It is the base class of all values computed by a program that may be used as operands to other values. Value is the super class of other important classes such as Instruction and Function. All Values have a Type. Type is not a subclass of Value. All types can have a name and they should belong to some Module. Setting the name on the Value automatically update's the module's symbol table.
Every value has a "use list" that keeps track of which other Values are using this Value.
Definition at line 49 of file Value.h.
typedef value_use_iterator<const User> llvm::Value::use_const_iterator |
enum llvm::Value::ValueTy |
An enumeration for keeping track of the concrete subclass of Value that is actually instantiated. Values of this enumeration are kept in the Value classes SubclassID field. They are used for concrete type identification.
Value::Value | ( | const Type * | Ty, | |
unsigned | scid, | |||
const std::string & | name = "" | |||
) |
Value::~Value | ( | ) | [virtual] |
Definition at line 44 of file Value.cpp.
References E, llvm::LeakDetector::removeGarbageObject(), use_begin(), and use_end().
void Value::dump | ( | ) | const [virtual] |
dump - Support for debugging, callable in GDB: V->dump()
Definition at line 1337 of file AsmWriter.cpp.
References print().
Referenced by llvm::CallTargetFinder::print().
virtual void llvm::Value::print | ( | std::ostream & | O | ) | const [pure virtual] |
print - Implement operator<< on Value...
Implemented in llvm::Argument, llvm::BasicBlock, llvm::Constant, llvm::Function, llvm::GlobalVariable, llvm::InlineAsm, llvm::Instruction, and llvm::BytecodeReader::ValueList.
Referenced by dump(), and llvm::BytecodeReader::ValueList::print().
const Type* llvm::Value::getType | ( | ) | const [inline] |
All values are typed, get the type of this value.
Reimplemented in llvm::ConstantArray, llvm::ConstantStruct, llvm::ConstantPacked, llvm::ConstantPointerNull, llvm::GlobalValue, llvm::InlineAsm, llvm::AllocationInst, llvm::GetElementPtrInst, llvm::InsertElementInst, and llvm::ShuffleVectorInst.
Definition at line 81 of file Value.h.
References Ty.
Referenced by llvm::AliasSetTracker::add(), llvm::PHINode::addIncoming(), llvm::DSGraph::addObjectToGraph(), AddWithOverflow(), AssociativeOpt(), CallPassesValueThoughVararg(), CanEvaluateInDifferentType(), CastConstantPacked(), llvm::CloneAndPruneFunctionInto(), Coerce(), CollectShuffleElements(), CollectSingleShuffleElements(), ComputeMaskedBits(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), llvm::ConstantRange::ConstantRange(), llvm::ConvertExpressionToType(), ConvertOperandToType(), ConvertShiftToMul(), llvm::BinaryOperator::create(), DecomposeSimpleLinearExpr(), llvm::DemoteRegToStack(), llvm::AsmPrinter::EmitConstantPool(), llvm::AsmPrinter::EmitGlobalConstant(), EvaluateFunction(), evaluateRelation(), EvaluateStoreInto(), llvm::Interpreter::executeGEPOperation(), llvm::ExpressionConvertibleToType(), FoldCondBranchOnPHI(), FoldOpIntoSelect(), FoldTwoEntryPHINode(), llvm::FunctionLoweringInfo::FunctionLoweringInfo(), GatherConstantSetNEs(), llvm::gep_type_begin(), llvm::SCEVSDivExpr::get(), llvm::SCEVConstant::get(), llvm::ConstantExpr::get(), llvm::DSGraph::getDSCallSiteForCallSite(), llvm::ConstantExpr::getExtractElement(), GetFactor(), llvm::ConstantExpr::getInsertElement(), GetKnownAlignment(), llvm::AliasAnalysis::getModRefInfo(), llvm::ConstantExpr::getSelect(), GetSelectFoldableConstant(), llvm::ConstantExpr::getSelectTy(), llvm::ConstantIntegral::getSExtValue(), llvm::ConstantExpr::getShiftTy(), llvm::ConstantExpr::getSShr(), llvm::DISerializer::getString(), getStringRef(), llvm::ConstantExpr::getTy(), llvm::SCEVUnknown::getType(), llvm::SCEVConstant::getType(), llvm::ShuffleVectorInst::getType(), llvm::InsertElementInst::getType(), llvm::GetElementPtrInst::getType(), llvm::AllocationInst::getType(), llvm::InlineAsm::getType(), llvm::GlobalValue::getType(), llvm::ConstantPointerNull::getType(), llvm::ConstantPacked::getType(), llvm::ConstantStruct::getType(), llvm::ConstantArray::getType(), llvm::ConstantRange::getType(), llvm::CallSite::getType(), llvm::ConstantExpr::getUShr(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), llvm::ConstantIntegral::getZExtValue(), llvm::GlobalVariable::GlobalVariable(), llvm::PHINode::hasConstantValue(), HoistThenElseCodeToIf(), IdenticalComplexInst(), llvm::BinaryOperator::init(), llvm::ExecutionEngine::InitializeMemory(), llvm::SymbolTable::insert(), InsertGEPComputeCode(), llvm::InsertProfilingInitCall(), InstallGlobalCtors(), InstCombineLoadCast(), InstCombineStoreToCast(), llvm::ConstantUInt::isAllOnesValue(), llvm::Instruction::isAssociative(), isHighOnes(), llvm::Instruction::isIdenticalTo(), llvm::ConstantSInt::isMaxValue(), llvm::ConstantSInt::isMinValue(), isReinterpretingCast(), isSignBit(), isSignBitCheck(), llvm::ShuffleVectorInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ExtractElementInst::isValidOperands(), llvm::TargetLowering::LowerArguments(), LowerCTPOP(), llvm::DefaultIntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), Next(), OperandConvertibleToType(), OptimizeAwayTrappingUsesOfValue(), OptimizeConstantExpr(), OptimizeGEPExpression(), OptimizeNoopCopyExpression(), llvm::BytecodeReader::ParseConstantPool(), llvm::BytecodeReader::ParseConstantPoolValue(), llvm::BytecodeReader::ParseInstruction(), PartialFact(), llvm::Constant::print(), llvm::SymbolTable::remove(), llvm::AliasSetTracker::remove(), llvm::PHINode::removeIncomingValue(), RemoveNoopCast(), replaceAllUsesWith(), ReplaceCallWith(), ReplaceUsesOfGEPInst(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), SCCPSolver::ResolveBranchesIn(), llvm::JIT::runFunction(), llvm::MemIntrinsic::setAlignment(), llvm::MemIntrinsic::setDest(), llvm::MemIntrinsic::setLength(), llvm::MemMoveInst::setSource(), llvm::MemCpyInst::setSource(), llvm::MemSetInst::setValue(), ShouldTraceValue(), ShrinkDemandedConstant(), ShrinkGlobalToBoolean(), SolveQuadraticEquation(), llvm::ConstantRange::subtract(), llvm::UpgradeIntrinsicCall(), ValuesEqual(), llvm::SelectionDAGLowering::visitBinary(), llvm::Interpreter::visitBinaryOperator(), llvm::SelectionDAGLowering::visitCall(), llvm::SelectionDAGLowering::visitCast(), llvm::Interpreter::visitCastInst(), llvm::SelectionDAGLowering::visitExtractElement(), llvm::Interpreter::visitFreeInst(), llvm::SelectionDAGLowering::visitGetElementPtr(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitLoad(), llvm::Interpreter::visitLoadInst(), llvm::Interpreter::visitReturnInst(), llvm::SelectionDAGLowering::visitSelect(), llvm::SelectionDAGLowering::visitSetCC(), llvm::Interpreter::visitShl(), llvm::Interpreter::visitShr(), llvm::Interpreter::visitStoreInst(), llvm::SelectionDAGLowering::visitSub(), llvm::Interpreter::visitSwitchInst(), llvm::SelectionDAGLowering::visitTargetIntrinsic(), llvm::SelectionDAGLowering::visitUserOp2(), llvm::SelectionDAGLowering::visitVAArg(), llvm::Interpreter::visitVAArgInst(), WriteConstantInt(), and llvm::ConstantRange::zeroExtend().
bool llvm::Value::hasName | ( | ) | const [inline] |
Definition at line 84 of file Value.h.
References Name.
Referenced by llvm::CloneBasicBlock(), llvm::SymbolTable::insert(), llvm::SymbolTable::remove(), setName(), llvm::SimplifyCFG(), and TryToSimplifyUncondBranchFromEmptyBlock().
const std::string& llvm::Value::getName | ( | ) | const [inline] |
Definition at line 85 of file Value.h.
References Name.
Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), BreakUpSubtract(), llvm::CloneBasicBlock(), llvm::ConvertExpressionToType(), ConvertOperandToType(), ConvertShiftToMul(), llvm::DemoteRegToStack(), llvm::SDNode::dump(), EmitGEPOffset(), llvm::ExecutionEngine::EmitGlobalVariable(), llvm::X86RegisterInfo::emitPrologue(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), EvaluateFunction(), FoldCondBranchOnPHI(), FoldTwoEntryPHINode(), ForceRenaming(), getArgumentPermutation(), getGlobalVariableClass(), llvm::Function::getIntrinsicID(), llvm::JIT::getOrEmitGlobalVariable(), getSCEVStartAndStride(), HandleInlinedInvoke(), HoistThenElseCodeToIf(), InlineCallIfPossible(), llvm::InlineFunction(), llvm::SymbolTable::insert(), InsertInstrumentationCall(), InstallGlobalCtors(), InstCombineLoadCast(), InstCombineStoreToCast(), LinkGlobals(), llvm::DefaultIntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), SCCPSolver::MarkBlockExecutable(), NegateValue(), OptimizeGEPExpression(), OptimizeGlobalAddressOfMalloc(), llvm::BytecodeReader::ParseConstantPool(), llvm::SCEVAddRecExpr::print(), llvm::MachineFunction::print(), llvm::MachineBasicBlock::print(), llvm::CallTargetFinder::print(), llvm::CallGraphNode::print(), llvm::AsmPrinter::printBasicBlockLabel(), printCollection(), PrintLoopInfo(), llvm::PMDebug::PrintPassInformation(), ProcessGlobalsWithSameName(), llvm::SymbolTable::remove(), ReplaceCallWith(), llvm::ReplaceInstWithValue(), ResolveFunctions(), llvm::SelectionDAGISel::runOnFunction(), ShrinkGlobalToBoolean(), llvm::SimplifyCFG(), llvm::SplitCriticalEdge(), SRAGlobal(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UpgradeIntrinsicCall(), and llvm::Function::viewCFG().
void Value::setName | ( | const std::string & | name | ) |
Definition at line 96 of file Value.cpp.
References A, BB, llvm::SymbolTable::changeName(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), GV, hasName(), llvm::SymbolTable::insert(), and llvm::SymbolTable::remove().
Referenced by BreakUpSubtract(), llvm::CloneBasicBlock(), llvm::ConvertExpressionToType(), ConvertOperandToType(), ConvertShiftToMul(), FoldCondBranchOnPHI(), FoldTwoEntryPHINode(), ForceRenaming(), getBBVal(), HoistThenElseCodeToIf(), InstallGlobalCtors(), LinkAppendingVars(), LowerNegateToMultiply(), NegateValue(), ReplaceCallWith(), llvm::SimplifyCFG(), and TryToSimplifyUncondBranchFromEmptyBlock().
void Value::replaceAllUsesWith | ( | Value * | V | ) |
replaceAllUsesWith - Go through the uses list for this definition and make each use point to "V" instead of "this". After this completes, 'this's use list is guaranteed to be empty.
Definition at line 153 of file Value.cpp.
References getType(), and uncheckedReplaceAllUsesWith().
Referenced by AddReachableCodeToWorklist(), AssociativeOpt(), BreakUpSubtract(), llvm::CloneAndPruneFunctionInto(), ConvertShiftToMul(), FindPHIToPartitionLoops(), FoldCondBranchOnPHI(), FoldTwoEntryPHINode(), HandleInlinedInvoke(), HoistThenElseCodeToIf(), llvm::InlineFunction(), InstallGlobalCtors(), LinkAppendingVars(), LinkGlobals(), llvm::DefaultIntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), OptimizeGEPExpression(), OptimizeGlobalAddressOfMalloc(), llvm::BytecodeReader::ParseFunctionBody(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), ReplaceCallWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), ResolveFunctions(), llvm::SimplifyCFG(), SRAGlobal(), TryToSimplifyUncondBranchFromEmptyBlock(), and llvm::UpgradeIntrinsicCall().
void Value::uncheckedReplaceAllUsesWith | ( | Value * | V | ) |
Definition at line 137 of file Value.cpp.
References C, U, and use_empty().
Referenced by llvm::ConvertConstantType< ConstantExpr, Type >::convert(), llvm::ConvertConstantType< UndefValue, Type >::convert(), llvm::ConvertConstantType< ConstantPointerNull, PointerType >::convert(), llvm::ConvertConstantType< ConstantPacked, PackedType >::convert(), llvm::ConvertConstantType< ConstantStruct, StructType >::convert(), llvm::ConvertConstantType< ConstantArray, ArrayType >::convert(), llvm::ConvertConstantType< ConstantAggregateZero, Type >::convert(), replaceAllUsesWith(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), llvm::ConstantPacked::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), and llvm::ConstantArray::replaceUsesOfWithOnConstant().
bool llvm::Value::use_empty | ( | ) | const [inline] |
Definition at line 105 of file Value.h.
Referenced by CallersAllIgnoreReturnValue(), DeadPHICycle(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstantImpl(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::FunctionLoweringInfo::FunctionLoweringInfo(), getGlobalVariableClass(), InlineCallIfPossible(), InstallGlobalCtors(), llvm::isInstructionTriviallyDead(), llvm::DefaultIntrinsicLowering::LowerIntrinsicCall(), OptimizeAwayTrappingUsesOfLoads(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), ProcessGlobalsWithSameName(), RecursiveDelete(), llvm::GlobalValue::removeDeadConstantUsers(), ReplaceCallWith(), ReplaceUsesOfGEPInst(), ResolveFunctions(), ShrinkGlobalToBoolean(), SRAGlobal(), uncheckedReplaceAllUsesWith(), and llvm::UpgradeIntrinsicCall().
use_iterator llvm::Value::use_begin | ( | ) | [inline] |
Definition at line 106 of file Value.h.
Referenced by AddressIsTaken(), AllCalleesPassInValidPointerForArgument(), AllUsersAreLoads(), AllUsesOfLoadedValueWillTrapIfNull(), CallersAllIgnoreReturnValue(), llvm::ConvertExpressionToType(), ConvertOperandToType(), llvm::ExpressionConvertibleToType(), getNumUses(), llvm::SourceFunctionInfo::getSourceLocation(), hasNUses(), hasNUsesOrMore(), hasOneUse(), llvm::isAllocaPromotable(), IsOnlyUsedInEqualsZeroComparison(), LiveAtBBExit(), OptimizeAwayTrappingUsesOfLoads(), OptimizeGEPExpression(), OptimizeNoopCopyExpression(), ReplaceUsesOfWith(), SCCPSolver::Solve(), use_back(), and ~Value().
use_const_iterator llvm::Value::use_begin | ( | ) | const [inline] |
use_iterator llvm::Value::use_end | ( | ) | [inline] |
Definition at line 108 of file Value.h.
Referenced by AddressIsTaken(), AllCalleesPassInValidPointerForArgument(), AllUsersAreLoads(), AllUsesOfLoadedValueWillTrapIfNull(), CallersAllIgnoreReturnValue(), ConvertOperandToType(), llvm::ExpressionConvertibleToType(), getNumUses(), llvm::SourceFunctionInfo::getSourceLocation(), hasNUses(), hasNUsesOrMore(), hasOneUse(), llvm::isAllocaPromotable(), IsOnlyUsedInEqualsZeroComparison(), LiveAtBBExit(), OptimizeAwayTrappingUsesOfLoads(), OptimizeGEPExpression(), OptimizeNoopCopyExpression(), ReplaceUsesOfWith(), SCCPSolver::Solve(), and ~Value().
use_const_iterator llvm::Value::use_end | ( | ) | const [inline] |
User* llvm::Value::use_back | ( | ) | [inline] |
Definition at line 110 of file Value.h.
References use_begin().
Referenced by BreakUpSubtract(), ConvertShiftToMul(), DeadPHICycle(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstantImpl(), OptimizeGlobalAddressOfMalloc(), llvm::GlobalValue::removeDeadConstantUsers(), ReplaceUsesOfGEPInst(), ShrinkGlobalToBoolean(), and SRAGlobal().
const User* llvm::Value::use_back | ( | ) | const [inline] |
bool llvm::Value::hasOneUse | ( | ) | const [inline] |
hasOneUse - Return true if there is exactly one user of this value. This is specialized because it is a common request and does not require traversing the whole use list.
Definition at line 117 of file Value.h.
References E, use_begin(), and use_end().
Referenced by AssociativeOpt(), BreakUpSubtract(), CanEvaluateInDifferentType(), CheapToScalarize(), ConvertShiftToMul(), DeadPHICycle(), FoldCondBranchOnPHI(), FoldOpIntoSelect(), isBlockSimpleEnough(), NegateValue(), llvm::TargetLowering::SimplifyDemandedBits(), and TryToSinkInstruction().
bool Value::hasNUses | ( | unsigned | N | ) | const |
bool Value::hasNUsesOrMore | ( | unsigned | N | ) | const |
hasNUsesOrMore - Return true if this value has N users or more. This is logically equivalent to getNumUses() >= N.
Definition at line 78 of file Value.cpp.
References E, use_begin(), and use_end().
Referenced by llvm::BasicBlock::removePredecessor(), and SRAGlobal().
unsigned Value::getNumUses | ( | ) | const |
getNumUses - This method computes the number of uses of this Value. This is a linear time operation. Use hasOneUse, hasNUses, or hasMoreThanNUses to check for specific values.
Definition at line 91 of file Value.cpp.
References use_begin(), and use_end().
Referenced by llvm::ConvertExpressionToType(), and ResolveFunctions().
void llvm::Value::addUse | ( | Use & | U | ) | [inline] |
addUse/killUse - These two methods should only be used by the Use class.
Definition at line 139 of file Value.h.
References U.
Referenced by llvm::Use::init().
unsigned llvm::Value::getValueType | ( | ) | const [inline] |
getValueType - Return an ID for the concrete type of this object. This is used to implement the classof checks. This should not be used for any other purpose, as the values may change as LLVM evolves. Also, note that starting with the InstructionVal value, the value stored is actually the Instruction opcode, so there are more than just these values possible here (and Instruction must be last).
Definition at line 176 of file Value.h.
Referenced by llvm::Instruction::getOpcode(), LowerCALL(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerOperation(), and llvm::PPCTargetLowering::PerformDAGCombine().
static bool llvm::Value::classof | ( | const Value * | ) | [inline, static] |
Reimplemented in llvm::Argument, llvm::BasicBlock, llvm::Constant, llvm::ConstantIntegral, llvm::ConstantBool, llvm::ConstantInt, llvm::ConstantSInt, llvm::ConstantUInt, llvm::ConstantFP, llvm::ConstantAggregateZero, llvm::ConstantArray, llvm::ConstantStruct, llvm::ConstantPacked, llvm::ConstantPointerNull, llvm::ConstantExpr, llvm::UndefValue, llvm::Function, llvm::GlobalValue, llvm::GlobalVariable, llvm::InlineAsm, llvm::TerminatorInst, llvm::BinaryOperator, llvm::Instruction, llvm::AllocationInst, llvm::MallocInst, llvm::AllocaInst, llvm::FreeInst, llvm::LoadInst, llvm::StoreInst, llvm::GetElementPtrInst, llvm::SetCondInst, llvm::CastInst, llvm::CallInst, llvm::ShiftInst, llvm::SelectInst, llvm::VAArgInst, llvm::ExtractElementInst, llvm::InsertElementInst, llvm::ShuffleVectorInst, llvm::PHINode, llvm::ReturnInst, llvm::BranchInst, llvm::SwitchInst, llvm::InvokeInst, llvm::UnwindInst, llvm::UnreachableInst, llvm::IntrinsicInst, llvm::DbgInfoIntrinsic, llvm::DbgStopPointInst, llvm::DbgFuncStartInst, llvm::DbgRegionStartInst, llvm::DbgRegionEndInst, llvm::DbgDeclareInst, llvm::MemIntrinsic, llvm::MemCpyInst, llvm::MemMoveInst, llvm::MemSetInst, llvm::User, and llvm::ValueHandle.
const Type* llvm::Value::getRawType | ( | ) | const [inline] |
friend class ValueSymbolTable [friend] |
friend class SymbolTable [friend] |
friend class Instruction [friend] |
unsigned short llvm::Value::SubclassData [protected] |
SubclassData - This member is defined by this class, but is not used for anything. Subclasses can use it to hold whatever state they find useful. This field is initialized to zero by the ctor.
Definition at line 55 of file Value.h.
Referenced by llvm::ConstantExpr::ConstantExpr(), llvm::InvokeInst::getCallingConv(), llvm::CallInst::getCallingConv(), llvm::ConstantExpr::getOpcode(), llvm::CallInst::isTailCall(), llvm::StoreInst::isVolatile(), llvm::LoadInst::isVolatile(), llvm::InvokeInst::setCallingConv(), llvm::CallInst::setCallingConv(), llvm::CallInst::setTailCall(), llvm::StoreInst::setVolatile(), and llvm::LoadInst::setVolatile().