LLVM: lib/Target/Hexagon/HexagonCommonGEP.cpp File Reference (original) (raw)
Go to the source code of this file.
| Namespaces |
|
| namespace |
false |
| namespace |
llvm |
|
This is an optimization pass for GlobalISel generic memory operations. |
| Functions |
|
|
INITIALIZE_PASS_BEGIN (HexagonCommonGEP, "hcommgep", "Hexagon Common GEP", false, false) INITIALIZE_PASS_END(HexagonCommonGEP |
| raw_ostream & |
false::operator<< (raw_ostream &OS, const GepNode &GN) |
| template |
|
| void |
false::dump_node_container (raw_ostream &OS, const NodeContainer &S) |
| raw_ostream & |
false::operator<< (raw_ostream &OS, const NodeVect &S) |
| raw_ostream & |
false::operator<< (raw_ostream &OS, const NodeToUsesMap &M) |
| void * |
operator new (size_t, SpecificBumpPtrAllocator< GepNode > &A) |
| static void |
invert_find_roots (const NodeVect &Nodes, NodeChildrenMap &NCM, NodeVect &Roots) |
| static void |
nodes_for_root (GepNode *Root, NodeChildrenMap &NCM, NodeSet &Nodes) |
| static const NodeSet * |
node_class (GepNode *N, NodeSymRel &Rel) |
| static NodePair |
node_pair (GepNode *N1, GepNode *N2) |
| static unsigned |
node_hash (GepNode *N) |
| static bool |
node_eq (GepNode *N1, GepNode *N2, NodePairSet &Eq, NodePairSet &Ne) |
| template<typename T> |
|
| static BasicBlock * |
nearest_common_dominator (DominatorTree *DT, T &Blocks) |
| template<typename T> |
|
| static BasicBlock * |
nearest_common_dominatee (DominatorTree *DT, T &Blocks) |
| template<typename T> |
|
| static BasicBlock::iterator |
first_use_of_in_block (T &Values, BasicBlock *B) |
| static bool |
is_empty (const BasicBlock *B) |
| static BasicBlock * |
preheader (DominatorTree *DT, Loop *L) |
| FunctionPass * |
llvm::createHexagonCommonGEP () |
◆ DEBUG_TYPE
#define DEBUG_TYPE "commgep"
◆ first_use_of_in_block()
◆ INITIALIZE_PASS_BEGIN()
| INITIALIZE_PASS_BEGIN |
( |
HexagonCommonGEP |
, |
| "hcommgep" |
, |
|
|
| "Hexagon Common GEP" |
, |
|
|
| false |
, |
|
|
| false |
) |
|
|
◆ invert_find_roots()
| void invert_find_roots ( const NodeVect & Nodes, NodeChildrenMap & NCM, NodeVect & Roots ) |
static |
◆ is_empty()
◆ nearest_common_dominatee()
◆ nearest_common_dominator()
◆ node_class()
| const NodeSet * node_class ( GepNode * N, NodeSymRel & Rel ) |
static |
◆ node_eq()
| bool node_eq ( GepNode * N1, GepNode * N2, NodePairSet & Eq, NodePairSet & Ne ) |
static |
◆ node_hash()
| unsigned node_hash ( GepNode * N) |
static |
◆ node_pair()
| NodePair node_pair ( GepNode * N1, GepNode * N2 ) |
static |
◆ nodes_for_root()
| void nodes_for_root ( GepNode * Root, NodeChildrenMap & NCM, NodeSet & Nodes ) |
static |
◆ operator new()
◆ false
◆ GEP
Definition at line 164 of file HexagonCommonGEP.cpp.
Referenced by llvm::SystemZTTIImpl::adjustInliningThreshold(), allZeroIndices(), llvm::PoisonFlags::apply(), aspaceWrapValue(), calculateGEPOffset(), calculateVectorIndex(), llvm::FastISel::canFoldAddIntoGEP(), canonicalizeGEPOfConstGEPI8(), canRewriteGEPAsOffset(), slpvectorizer::BoUpSLP::canVectorizeLoads(), chainToBasePointerCost(), checkOverflow(), CleanupConstantGlobalUsers(), collectOffsets(), collectSRATypes(), combineAndLoadToBZHI(), combineConstantOffsets(), llvm::CommonPointerBase::compute(), llvm::ConstantFoldCastOperand(), llvm::ConstantFoldExtractElementInstruction(), convertToParamAS(), convertToRelLookupTable(), llvm::MachineInstr::copyFlagsFromInstruction(), countNumMemAccesses(), llvm::GetElementPtrInst::Create(), decompose(), decomposeGEP(), llvm::decomposeLinearExpression(), DoFlattenLoopPair(), dynamicallyLoadArray(), llvm::emitGEPOffset(), fillCommonArgs(), llvm::findAllocaForValue(), findArgParts(), findBaseDefiningValue(), findBaseDefiningValueOfVector(), findForkedSCEVs(), llvm::findHistogram(), findLoadCallsAtConstantOffset(), findRematerializableChainToBasePointer(), FindSingleUseIdentifiedObject(), fixI8UseChain(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldDependentIVs(), foldGEPChainAsStructAccess(), foldGEPChainAsU8Access(), foldGEPOfPhi(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpCommutative(), llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPtrToIntOrAddrOfGEP(), foldSelectGEP(), llvm::InstCombinerImpl::foldVectorSelect(), llvm::gep_type_begin(), llvm::gep_type_begin(), llvm::gep_type_end(), llvm::gep_type_end(), GEPSequentialConstIndexed(), GEPToVectorIndex(), llvm::ConstantExpr::getAlignOf(), getBaseType(), getConstraintFromMemoryAccess(), llvm::ARMTTIImpl::getGatherScatterOpCost(), llvm::ScalarEvolution::getGEPExpr(), getGEPSmallConstantIntOffsetV(), llvm::getIndexExpressionsFromGEP(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), getLoopVariantGEPOperand(), llvm::X86TTIImpl::getMemoryOpCost(), getOffloadingArrayType(), getOptimizationFlags(), llvm::RISCVTTIImpl::getPointersChainCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getPointersChainCost(), llvm::vputils::getRecipesForUncountableExit(), getSalvageOpsForGEP(), llvm::ConstantExpr::getSizeOf(), getStrideAndModOffsetOfGEP(), llvm::getUnderlyingObject(), getUniformBase(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), HasAddressTaken(), hasOnlyOneNonZeroIndex(), llvm::Operator::hasPoisonGeneratingFlags(), hoistGEP(), insertSpills(), llvm::IRSimilarity::isClose(), llvm::IsConstantOffsetFromGlobal(), isDereferenceableAndAlignedPointer(), llvm::CommonPointerBase::isExpensive(), isFirstIndexZero(), isFoldableInLoop(), isGEPFoldable(), isGEPFoldable(), isGEPKnownNonNull(), isKnownTypeIdMember(), isNoWrap(), isOnlyCopiedFromConstantMemory(), isPointerOperand(), IsPtrInBounds(), isSafeAndProfitableToSinkLoad(), IsSafeComputationToRemove(), legalizeScalarLoadStoreOnArrays(), LLVM_ATTRIBUTE_C_DEPRECATED(), LLVMGEPGetNoWrapFlags(), LLVMGEPSetNoWrapFlags(), LLVMGetGEPSourceElementType(), LLVMGetNumIndices(), LLVMIsInBounds(), LLVMSetIsInBounds(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), makeGEPAndLoad(), makeGEPAndStore(), llvm::PatternMatch::PtrAdd_match< PointerOpTy, OffsetOpTy >::match(), llvm::InstModificationIRStrategy::mutate(), parseJumpTable(), passingValueIsAlwaysUndefined(), llvm::PoisonFlags::PoisonFlags(), reconstructCommon(), reconstructGEP(), llvm::BPFPreserveStaticOffsetPass::reconstructLoad(), llvm::BPFPreserveStaticOffsetPass::reconstructStore(), llvm::refineInstruction(), removePAICalls(), replaceAccess(), replaceWithGEP(), rewriteAccessChain(), rewriteGEPAsOffset(), rsrcPartRoot(), llvm::JumpTableToSwitchPass::run(), llvm::TypeFinder::run(), llvm::salvageDebugInfoImpl(), shouldCanonicalizeGEPToPtrAdd(), shouldConvertToRelLookupTable(), shouldMergeGEPs(), shouldSinkVectorOfPtrs(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), splitGlobal(), StripPointerGEPsAndCasts(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), tryToFoldLiveIns(), tryToRecognizeTableBasedCttz(), unrollGEPLoad(), unrollGEPStore(), upcastI8AllocasAndUses(), llvm::dxil::ValueEnumerator::ValueEnumerator(), llvm::ValueEnumerator::ValueEnumerator(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitExtractValueInst(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitGEPOfGEP(), llvm::ObjectSizeOffsetEvaluator::visitGEPOperator(), llvm::InstCombinerImpl::visitGetElementPtrInst(), visitICmpLoadOperand(), llvm::InstCombinerImpl::visitSelectInst(), llvm::InstCombinerImpl::visitStoreInst(), llvm::InstCombinerImpl::visitSub(), llvm::VPIRFlags::VPIRFlags(), llvm::VPWidenGEPRecipe::VPWidenGEPRecipe(), writeConstantInternal(), and writeOptimizationInfo().
◆ hcommgep
◆ OptEnableConst
| cl::opt< bool > OptEnableConst("commgep-const", cl::init(true), cl::Hidden) ( "commgep-const" , cl::init(true) , cl::Hidden ) |
static |
◆ OptEnableInv
| cl::opt< bool > OptEnableInv("commgep-inv", cl::init(true), cl::Hidden) ( "commgep-inv" , cl::init(true) , cl::Hidden ) |
static |
◆ OptSpeculate
| cl::opt< bool > OptSpeculate("commgep-speculate", cl::init(true), cl::Hidden) ( "commgep-speculate" , cl::init(true) , cl::Hidden ) |
static |