本文整理汇总了C++中llvm::ImmutableCallSite::getInstruction方法的典型用法代码示例。如果您正苦于以下问题:C++ ImmutableCallSite::getInstruction方法的具体用法?C++ ImmutableCallSite::getInstruction怎么用?C++ ImmutableCallSite::getInstruction使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类llvm::ImmutableCallSite
的用法示例。
在下文中一共展示了ImmutableCallSite::getInstruction方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getModRefInfo
llvm::ModRefInfo SwiftAAResult::getModRefInfo(llvm::ImmutableCallSite CS,
const llvm::MemoryLocation &Loc) {
// We know the mod-ref behavior of various runtime functions.
switch (classifyInstruction(*CS.getInstruction())) {
case RT_AllocObject:
case RT_NoMemoryAccessed:
case RT_Retain:
case RT_RetainUnowned:
case RT_CheckUnowned:
case RT_ObjCRetain:
case RT_BridgeRetain:
case RT_UnknownRetain:
case RT_RetainN:
case RT_UnknownRetainN:
case RT_BridgeRetainN:
case RT_FixLifetime:
// These entrypoints don't modify any compiler-visible state.
return MRI_NoModRef;
case RT_ReleaseN:
case RT_UnknownReleaseN:
case RT_BridgeReleaseN:
case RT_Release:
case RT_ObjCRelease:
case RT_BridgeRelease:
case RT_UnknownRelease:
case RT_Unknown:
break;
}
return AAResultBase::getModRefInfo(CS, Loc);
}
示例2: getModRefInfo
ModRefInfo SwiftAAResult::getModRefInfo(llvm::ImmutableCallSite CS,
const llvm::MemoryLocation &Loc) {
// We know at compile time that certain entry points do not modify any
// compiler-visible state ever. Quickly check if we have one of those
// instructions and return if so.
if (ModRefInfo::NoModRef ==
getConservativeModRefForKind(*CS.getInstruction()))
return ModRefInfo::NoModRef;
// Otherwise, delegate to the rest of the AA ModRefInfo machinery.
return AAResultBase::getModRefInfo(CS, Loc);
}