|
LLVM 23.0.0git
|
#include "llvm/IR/AutoUpgrade.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/StringRef.h"#include "llvm/ADT/StringSwitch.h"#include "llvm/BinaryFormat/Dwarf.h"#include "llvm/IR/AttributeMask.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DebugInfo.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/IR/Function.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/InstVisitor.h"#include "llvm/IR/Instruction.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/IntrinsicsAArch64.h"#include "llvm/IR/IntrinsicsAMDGPU.h"#include "llvm/IR/IntrinsicsARM.h"#include "llvm/IR/IntrinsicsNVPTX.h"#include "llvm/IR/IntrinsicsRISCV.h"#include "llvm/IR/IntrinsicsWebAssembly.h"#include "llvm/IR/IntrinsicsX86.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/MDBuilder.h"#include "llvm/IR/Metadata.h"#include "llvm/IR/Module.h"#include "llvm/IR/Value.h"#include "llvm/IR/Verifier.h"#include "llvm/Support/AMDGPUAddrSpace.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/NVPTXAddrSpace.h"#include "llvm/Support/Regex.h"#include "llvm/Support/TimeProfiler.h"#include "llvm/TargetParser/Triple.h"#include <cstdint>#include <cstring>#include <numeric>Go to the source code of this file.
Variables | |
| static cl::opt< bool > | DisableAutoUpgradeDebugInfo ("disable-auto-upgrade-debug-info", cl::desc("Disable autoupgrade of debug info")) |
Definition at line 2336 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), llvm::Constant::getNullValue(), llvm::Value::getType(), and getX86MaskVec().
Referenced by llvm::UpgradeIntrinsicCall(), upgradeMaskedCompare(), and upgradeX86IntrinsicCall().
Definition at line 1235 of file AutoUpgrade.cpp.
Referenced by upgradeIntrinsicFunction1(), and upgradeNVVMIntrinsicCall().
Definition at line 6353 of file AutoUpgrade.cpp.
Referenced by llvm::copyModuleAttrToFunctions().
|
static |
Definition at line 1241 of file AutoUpgrade.cpp.
References llvm::CastInst::castIsValid(), and llvm::Type::getHalfTy().
Referenced by upgradeIntrinsicFunction1().
|
static |
Definition at line 2022 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::dyn_cast(), and llvm::FixedVectorType::get().
Referenced by upgradeX86IntrinsicCall().
Definition at line 2010 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), llvm::Value::getType(), and getX86MaskVec().
Referenced by upgradeAbs(), upgradeAVX512MaskToSelect(), upgradePMULDQ(), upgradeX86ALIGNIntrinsics(), upgradeX86BinaryIntrinsics(), upgradeX86ConcatShift(), upgradeX86IntrinsicCall(), upgradeX86MaskedShift(), upgradeX86Rotate(), and upgradeX86VPERMT2Intrinsics().
|
static |
Definition at line 4810 of file AutoUpgrade.cpp.
References I.
Referenced by upgradeDbgIntrinsicToDbgRecord().
Definition at line 1990 of file AutoUpgrade.cpp.
References llvm::ArrayRef(), assert(), llvm::cast(), llvm::FixedVectorType::get(), and llvm::isPowerOf2_32().
Referenced by applyX86MaskOn1BitsVec(), emitX86Select(), llvm::UpgradeIntrinsicCall(), upgradeMaskedLoad(), upgradeMaskedStore(), upgradeMaskToInt(), and upgradeX86IntrinsicCall().
Definition at line 6457 of file AutoUpgrade.cpp.
References llvm::dyn_cast_or_null(), and T.
Referenced by llvm::upgradeInstructionLoopAttachment().
Definition at line 5833 of file AutoUpgrade.cpp.
Referenced by upgradeSingleNVVMAnnotation().
|
static |
Definition at line 64 of file AutoUpgrade.cpp.
References llvm::Value::getName(), and llvm::Value::setName().
Referenced by upgradeArmOrAarch64IntrinsicFunction(), upgradeIntrinsicFunction1(), upgradeNVVMIntrinsicCall(), upgradePTESTIntrinsic(), upgradeX86BF16DPIntrinsic(), upgradeX86BF16Intrinsic(), upgradeX86IntrinsicFunction(), upgradeX86IntrinsicsWith8BitMask(), upgradeX86MaskedFPCompare(), upgradeX86MultiplyAddBytes(), and upgradeX86MultiplyAddWords().
Definition at line 6344 of file AutoUpgrade.cpp.
References F.
Referenced by llvm::copyModuleAttrToFunctions().
|
static |
Definition at line 1169 of file AutoUpgrade.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), and llvm::Intrinsic::not_intrinsic.
Referenced by upgradeIntrinsicFunction1(), and upgradeNVVMIntrinsicCall().
|
static |
Definition at line 1144 of file AutoUpgrade.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_SHARED, llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), F, and llvm::Intrinsic::not_intrinsic.
Referenced by upgradeIntrinsicFunction1().
|
static |
Definition at line 1097 of file AutoUpgrade.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_SHARED, llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), F, llvm::Type::isIntegerTy(), and llvm::Intrinsic::not_intrinsic.
Referenced by upgradeIntrinsicFunction1().
Definition at line 167 of file AutoUpgrade.cpp.
References F.
Referenced by upgradeX86IntrinsicFunction().
Helper to unwrap Metadata MetadataAsValue operands, such as the Value field.
Definition at line 4803 of file AutoUpgrade.cpp.
References llvm::dyn_cast(), and llvm::CallBase::getArgOperand().
Referenced by upgradeDbgIntrinsicToDbgRecord().
Helper to unwrap intrinsic call MetadataAsValue operands.
Return as a plain MDNode, as it's the verifier's job to check these are the correct types later.
Definition at line 4791 of file AutoUpgrade.cpp.
References llvm::dyn_cast(), llvm::dyn_cast_if_present(), and llvm::CallBase::getArgOperand().
Referenced by upgradeDbgIntrinsicToDbgRecord().
|
static |
Definition at line 4505 of file AutoUpgrade.cpp.
References llvm::CallBase::args(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::StringSwitch< T, R >::Case(), llvm::dbgs(), llvm::StringSwitch< T, R >::Default(), llvm::SmallVectorTemplateCommon< T, typename >::end(), F, llvm::ConstantAggregateZero::get(), llvm::FixedVectorType::get(), llvm::ScalableVectorType::get(), llvm::Type::getBFloatTy(), llvm::Value::getName(), llvm::User::getOperand(), getType(), llvm::Value::getType(), llvm_unreachable, and llvm::Intrinsic::not_intrinsic.
Referenced by llvm::UpgradeIntrinsicCall().
Definition at line 2296 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), emitX86Select(), llvm::CallBase::getArgOperand(), and llvm::Value::getType().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 4652 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::CallBase::args(), assert(), llvm::cast(), llvm::MDBuilder::createRange(), llvm::dyn_cast(), F, llvm::AtomicRMWInst::FAdd, llvm::AMDGPUAS::FLAT_ADDRESS, llvm::AtomicRMWInst::FMax, llvm::AtomicRMWInst::FMin, llvm::MDNode::get(), llvm::VectorType::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::Type::getBFloatTy(), llvm::CallBase::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::User::getNumOperands(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), llvm::Type::isFloatTy(), llvm::isValidAtomicOrdering(), llvm::ConstantInt::isZero(), llvm::AMDGPUAS::LOCAL_ADDRESS, llvm::NotAtomic, llvm::AMDGPUAS::PRIVATE_ADDRESS, llvm::SequentiallyConsistent, llvm::Instruction::setMetadata(), llvm::AtomicRMWInst::setVolatile(), llvm::StringSwitch< T, R >::StartsWith(), T1, llvm::AtomicRMWInst::UDecWrap, llvm::AtomicRMWInst::UIncWrap, llvm::Unordered, llvm::AtomicRMWInst::USubCond, and llvm::AtomicRMWInst::USubSat.
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 4562 of file AutoUpgrade.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::CallBase::args(), F, llvm::FixedVectorType::get(), llvm::VectorType::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getIntrinsicID(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Value::getType(), and llvm_unreachable.
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 772 of file AutoUpgrade.cpp.
References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::cast(), llvm::Default, llvm::StringSwitch< T, R >::Default(), llvm::dyn_cast(), F, llvm::FixedVectorType::get(), llvm::VectorType::get(), llvm::Type::getBFloatTy(), llvm::Intrinsic::getOrInsertDeclaration(), Groups, llvm::Regex::match(), llvm::Intrinsic::not_intrinsic, rename(), llvm::size(), and llvm::StringSwitch< T, R >::StartsWith().
Referenced by upgradeIntrinsicFunction1().
|
static |
Definition at line 2420 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::CallBase::args(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::Type::isFPOrFPVectorTy(), and llvm_unreachable.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 4882 of file AutoUpgrade.cpp.
References F, llvm::CallBase::getArgOperand(), and llvm::Value::getType().
Referenced by llvm::UpgradeIntrinsicCall().
Convert debug intrinsic calls to non-instruction debug records.
Name - Final part of the intrinsic name, e.g. 'value' in llvm.dbg.value. CI - The debug intrinsic call.
Definition at line 4819 of file AutoUpgrade.cpp.
References llvm::DIExpression::append(), llvm::CallBase::arg_size(), assert(), llvm::DbgVariableRecord::Assign, llvm::DbgLabelRecord::createUnresolvedDbgLabelRecord(), llvm::DbgVariableRecord::createUnresolvedDbgVariableRecord(), llvm::DbgVariableRecord::Declare, llvm::dyn_cast(), llvm::dyn_cast_or_null(), llvm::CallBase::getArgOperand(), llvm::Instruction::getDebugLoc(), getDebugLocSafe(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Offset, unwrapMAVMetadataOp(), unwrapMAVOp(), and llvm::DbgVariableRecord::Value.
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 1261 of file AutoUpgrade.cpp.
References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), consumeNVVMPtrAddrSpace(), convertIntrinsicValidType(), llvm::Default, llvm::StringSwitch< T, R >::Default(), F, llvm::Intrinsic::getOrInsertDeclaration(), Groups, llvm::Intrinsic::not_intrinsic, llvm::SmallVectorTemplateBase< T, bool >::push_back(), R2, rename(), shouldUpgradeNVPTXBF16Intrinsic(), shouldUpgradeNVPTXSharedClusterIntrinsic(), shouldUpgradeNVPTXTMAG2SIntrinsics(), llvm::StringSwitch< T, R >::StartsWith(), upgradeArmOrAarch64IntrinsicFunction(), and upgradeX86IntrinsicFunction().
Referenced by llvm::UpgradeIntrinsicFunction().
Definition at line 6481 of file AutoUpgrade.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::dyn_cast_or_null(), E(), llvm::MDTuple::get(), I, T, and upgradeLoopTag().
Referenced by llvm::upgradeInstructionLoopAttachment().
|
static |
Definition at line 6469 of file AutoUpgrade.cpp.
References assert(), llvm::CallingConv::C, llvm::StringRef::drop_front(), llvm::MDString::get(), llvm::StringRef::size(), and llvm::StringRef::starts_with().
Referenced by upgradeLoopArgument().
|
static |
Definition at line 2358 of file AutoUpgrade.cpp.
References applyX86MaskOn1BitsVec(), llvm::CallBase::arg_size(), llvm::cast(), llvm::FixedVectorType::get(), llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm_unreachable, and Signed.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2275 of file AutoUpgrade.cpp.
References llvm::Aligned, llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), and getX86MaskVec().
Referenced by upgradeX86IntrinsicCall().
Definition at line 2397 of file AutoUpgrade.cpp.
References A(), B(), llvm::CallBase::getArgOperand(), and Select.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2257 of file AutoUpgrade.cpp.
References llvm::Aligned, llvm::CallingConv::C, llvm::cast(), llvm::Data, llvm::dyn_cast(), and getX86MaskVec().
Referenced by upgradeX86IntrinsicCall().
Definition at line 2411 of file AutoUpgrade.cpp.
References llvm::cast(), llvm::CallBase::getArgOperand(), llvm::Value::getType(), and getX86MaskVec().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 5800 of file AutoUpgrade.cpp.
References llvm::ArrayRef(), assert(), llvm::cast(), llvm::StringRef::empty(), llvm::mdconst::extract(), F, llvm::join(), llvm::Length, llvm::StringRef::split(), llvm::StringRef::trim(), and llvm::utostr().
Referenced by upgradeSingleNVVMAnnotation().
|
static |
Definition at line 2668 of file AutoUpgrade.cpp.
References llvm::Function::arg_size(), llvm::CallingConv::C, llvm::StringSwitch< T, R >::Case(), llvm::cast(), consumeNVVMPtrAddrSpace(), F, llvm::AtomicRMWInst::FAdd, llvm::FixedVectorType::get(), llvm::MDNode::get(), llvm::Function::getArg(), llvm::CallBase::getArgOperand(), llvm::Type::getBFloatTy(), llvm::Type::getInt64Ty(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::getScalarType(), llvm::Value::getType(), I, llvm::Type::isBFloatTy(), llvm::Type::isIntegerTy(), llvm::Intrinsic::not_intrinsic, rename(), llvm::SequentiallyConsistent, llvm::FastMathFlags::setApproxFunc(), shouldUpgradeNVPTXBF16Intrinsic(), llvm::AtomicRMWInst::UDecWrap, and llvm::AtomicRMWInst::UIncWrap.
Referenced by llvm::UpgradeIntrinsicCall().
Definition at line 2306 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::Value::getType(), LHS, and RHS.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 68 of file AutoUpgrade.cpp.
References F, llvm::FixedVectorType::get(), llvm::Type::getFloatTy(), llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
This checks for objc retain release marker which should be upgraded.
It returns true if module is modified.
Definition at line 5939 of file AutoUpgrade.cpp.
References Changed, llvm::dyn_cast_or_null(), llvm::Module::Error, llvm::MDString::get(), llvm::NamedMDNode::getOperand(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::UpgradeARCRuntime().
|
static |
Definition at line 5837 of file AutoUpgrade.cpp.
References llvm::cast(), llvm::mdconst::extract(), llvm::Attribute::get(), llvm::Value::getContext(), llvm::Attribute::getWithStackAlignment(), isXYZ(), isZero(), llvm::CallingConv::PTX_Kernel, upgradeNVVMFnVectorAttr(), and llvm::utostr().
Referenced by llvm::UpgradeNVVMAnnotations().
Definition at line 4869 of file AutoUpgrade.cpp.
References llvm::dyn_cast(), llvm::CallBase::getArgOperand(), llvm::Value::getType(), llvm::Offset, and llvm::reportFatalUsageError().
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 2039 of file AutoUpgrade.cpp.
References llvm::ArrayRef(), assert(), llvm::cast(), emitX86Select(), llvm::Constant::getNullValue(), llvm::Value::getType(), and llvm::isPowerOf2_32().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 157 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 147 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 2144 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), emitX86Select(), llvm::User::getOperand(), and llvm::Value::getType().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2224 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::cast(), emitX86Select(), llvm::ConstantAggregateZero::get(), llvm::CallBase::getArgOperand(), llvm::User::getOperand(), llvm::Value::getType(), and std::swap().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2827 of file AutoUpgrade.cpp.
References A(), AbstractManglingParser< Derived, Alloc >::Ops, llvm::Aligned, applyX86MaskOn1BitsVec(), llvm::CallBase::arg_size(), llvm::CallBase::args(), llvm::ArrayRef(), assert(), B(), llvm::CallingConv::C, llvm::cast(), llvm::Data, emitX86ScalarSelect(), emitX86Select(), F, llvm::ConstantAggregateZero::get(), llvm::ConstantAsMetadata::get(), llvm::FixedVectorType::get(), llvm::MDNode::get(), llvm::PoisonValue::get(), llvm::VectorType::get(), llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Type::getHalfTy(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::VectorType::getInteger(), llvm::Instruction::getModule(), llvm::Constant::getNullValue(), getNumElements(), llvm::User::getOperand(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::ShuffleVectorInst::getShuffleMask(), getType(), llvm::Value::getType(), getX86MaskVec(), High, I, llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::isa(), llvm::Type::isIntegerTy(), LHS, llvm_unreachable, llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), RHS, llvm::Instruction::setMetadata(), Size, std::swap(), upgradeAbs(), upgradeAVX512MaskToSelect(), upgradeMaskedCompare(), upgradeMaskedLoad(), upgradeMaskedMove(), upgradeMaskedStore(), upgradeMaskToInt(), upgradePMULDQ(), upgradeX86ALIGNIntrinsics(), upgradeX86BinaryIntrinsics(), upgradeX86ConcatShift(), upgradeX86MaskedShift(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), upgradeX86Rotate(), upgradeX86vpcom(), and upgradeX86VPERMT2Intrinsics().
Referenced by llvm::UpgradeIntrinsicCall().
Definition at line 534 of file AutoUpgrade.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), F, llvm::Intrinsic::getOrInsertDeclaration(), llvm::Intrinsic::not_intrinsic, rename(), shouldUpgradeX86Intrinsic(), upgradePTESTIntrinsic(), upgradeX86BF16DPIntrinsic(), upgradeX86BF16Intrinsic(), upgradeX86IntrinsicsWith8BitMask(), upgradeX86MaskedFPCompare(), upgradeX86MultiplyAddBytes(), and upgradeX86MultiplyAddWords().
Referenced by upgradeIntrinsicFunction1().
|
static |
Definition at line 84 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::isIntegerTy(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 100 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 2390 of file AutoUpgrade.cpp.
References emitX86Select(), and llvm::CallBase::getArgOperand().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 113 of file AutoUpgrade.cpp.
References llvm::cast(), F, llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::isVectorTy(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 131 of file AutoUpgrade.cpp.
References llvm::cast(), F, llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::isVectorTy(), and rename().
Referenced by upgradeX86IntrinsicFunction().
Definition at line 1924 of file AutoUpgrade.cpp.
References llvm::ArrayRef(), llvm::cast(), llvm::FixedVectorType::get(), and llvm::Constant::getNullValue().
Referenced by upgradeX86IntrinsicCall().
Definition at line 1958 of file AutoUpgrade.cpp.
References llvm::ArrayRef(), llvm::cast(), llvm::FixedVectorType::get(), and llvm::Constant::getNullValue().
Referenced by upgradeX86IntrinsicCall().
Definition at line 2159 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::cast(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::User::getOperand(), and llvm::Value::getType().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2185 of file AutoUpgrade.cpp.
References llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, LHS, llvm_unreachable, and RHS.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2084 of file AutoUpgrade.cpp.
References emitX86Select(), llvm::ConstantAggregateZero::get(), llvm::CallBase::getArgOperand(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm_unreachable, and std::swap().
Referenced by upgradeX86IntrinsicCall().