LLVM  4.0.0
Namespaces | Macros | Functions | Variables
HexagonEarlyIfConv.cpp File Reference
#include "Hexagon.h"
#include "HexagonInstrInfo.h"
#include "HexagonSubtarget.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/Pass.h"
#include "llvm/Support/BranchProbability.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include <cassert>
#include <iterator>
Include dependency graph for HexagonEarlyIfConv.cpp:

Go to the source code of this file.

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "hexagon-eif"
 

Functions

FunctionPassllvm::createHexagonEarlyIfConversion ()
 
void llvm::initializeHexagonEarlyIfConversionPass (PassRegistry &Registry)
 

Variables

INITIALIZE_PASS(HexagonEarlyIfConversion,"hexagon-eif","Hexagon
early if conversion", false,
false) bool
HexagonEarlyIfConversion
MachineBasicBlock
SB = *B->succ_begin()
 
MachineLoopL = MLI->getLoopFor(SB)
 

Macro Definition Documentation

#define DEBUG_TYPE   "hexagon-eif"

Definition at line 62 of file HexagonEarlyIfConv.cpp.

Variable Documentation

MachineLoop* L = MLI->getLoopFor(SB)

Definition at line 232 of file HexagonEarlyIfConv.cpp.

Referenced by llvm::LoopBase< N, M >::addBasicBlockToLoop(), addDiscriminators(), llvm::bfi_detail::IrreducibleGraph::addEdge(), llvm::bfi_detail::IrreducibleGraph::addEdges(), llvm::addInnerLoopsToHeadersMap(), llvm::LPPassManager::addLoop(), llvm::MCJIT::addObjectFile(), adjustICmpTruncate(), llvm::LoopInfoBase< N, M >::analyze(), llvm::internal::appendLoopsToWorklist(), llvm::DwarfDebug::beginFunction(), llvm::msf::MSFBuilder::build(), canMoveAboveCall(), llvm::LoopInfoBase< BasicBlock, Loop >::changeLoopFor(), checkLinkerOptCommand(), CloneLoop(), CloneLoopBlocks(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpValues(), CollectSubexprs(), llvm::ImutAVLFactory< ImutInfo >::combineTrees(), combineWeightsBySorting(), llvm::EHStreamer::computeCallSiteTable(), computeKnownBitsFromOperator(), llvm::ImmutableListFactory< T >::concat(), llvm::MipsELFStreamer::createPendingLabelRelocs(), llvm::CrashRecoveryContext::Disable(), DoInitialMatch(), DoPromotion(), llvm::DWARFDebugLoc::dump(), llvm::DWARFDebugLocDWO::dump(), llvm::EHStreamer::emitExceptionTable(), llvm::CrashRecoveryContext::Enable(), equalsLoadStoreHelper(), llvm::MCAsmParser::Error(), llvm::HexagonEvaluator::evaluate(), ExpandBinOp(), llvm::TargetLowering::expandMUL_LOHI(), llvm::SystemZInstrInfo::expandPostRAPseudo(), llvm::OnDiskChainedHashTable< Info >::find_hashed(), llvm::StringRef::find_lower(), findAddRecForLoop(), llvm::FindAllocaDbgDeclare(), llvm::FindAllocaDbgValues(), findIVOperand(), FindLIVLoopCondition(), FindLoopCounter(), llvm::SchedBoundary::findMaxLatency(), llvm::BinOpInit::Fold(), foldBlockIntoPredecessor(), llvm::ImutAVLTree< ImutInfo >::foreach(), llvm::ScalarEvolution::forgetLoop(), llvm::formLCSSAForInstructions(), formLCSSAOnAllLoops(), llvm::MCJIT::generateCodeForModule(), llvm::ScalarEvolution::getAddRecExpr(), getAddressSpaceOperand(), llvm::GraphTraits< const MachineLoop * >::getEntryNode(), llvm::GraphTraits< MachineLoop * >::getEntryNode(), llvm::GraphTraits< const Loop * >::getEntryNode(), llvm::GraphTraits< Loop * >::getEntryNode(), llvm::SMLoc::getFromPointer(), llvm::LoopAccessLegacyAnalysis::getInfo(), getInsertPointForUses(), llvm::OnDiskIterableChainedHashTable< Info >::key_iterator::getInternalKey(), llvm::SystemZInstrInfo::getLoadAndTest(), llvm::SystemZInstrInfo::getLoadAndTrap(), llvm::SystemZInstrInfo::getLoadStoreOpcodes(), llvm::DiagnosticInfoWithDebugLocBase::getLocation(), llvm::Loop::getLocRange(), llvm::LoopBlocksDFS::getLoop(), llvm::IVUsers::getLoop(), llvm::SCEVAddRecExpr::getLoop(), getLoopBackedgeTakenCounts(), llvm::LoopInfoBase< BasicBlock, Loop >::getLoopDepth(), llvm::ScalarEvolution::getLoopDisposition(), getLoopPhiForCounter(), llvm::TypeBasedAAResult::getModRefInfo(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), llvm::SCEVExpander::getOrInsertCanonicalInductionVariable(), getOutermostLoop(), llvm::BlockFrequencyInfoImplBase::WorkingData::getPackagedLoop(), getPreStartForExtend(), llvm::RecurrenceDescriptor::getRecurrenceIdentity(), llvm::BlockFrequencyInfoImplBase::WorkingData::getResolvedNode(), getShuffleAndOtherOprd(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::SelectionDAG::getStackArgumentTokenFactor(), llvm::DataLayout::getStructLayout(), llvm::DenseMapInfo< unsigned long >::getTombstoneKey(), llvm::DenseMapInfo< long >::getTombstoneKey(), llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, true >, false >::getType(), llvm::ELF::Elf64_Rel::getType(), llvm::ELF::Elf64_Rela::getType(), llvm::ScalarEvolution::getZeroExtendExpr(), handleEndBlock(), llvm::object::hashSysV(), llvm::PMTopLevelManager::initializeAllAnalysisInfo(), InstructionDereferencesPointer(), IsAvailableOnEntry(), llvm::LoopBlocksDFS::isComplete(), isInteresting(), llvm::LoopInfoBase< BasicBlock, Loop >::isLoopHeader(), llvm::ScalarEvolution::isLoopInvariantPredicate(), isOffsetLegal(), isPointerValueDeadOnEntryToFunction(), llvm::isPowerOf2_64(), isSafeToMove(), isSameUnderlyingObjectInLoop(), isSimpleIVUser(), isTypeCongruent(), llvm::Linker::linkModules(), LLVMGetOperand(), LLVMSetCurrentDebugLocation(), LoadDIA(), llvm::xray::loadTraceFile(), llvm::cl::location(), LoopIsOuterMostWithPredecessor(), llvm::TargetLowering::LowerCallTo(), llvm::AMDGPUTargetLowering::LowerFROUND64(), llvm::AMDGPUTargetLowering::LowerINT_TO_FP32(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_AShr(), llvm::PatternMatch::m_BinOp(), llvm::PatternMatch::m_Cmp(), llvm::PatternMatch::m_CombineAnd(), llvm::PatternMatch::m_CombineOr(), llvm::PatternMatch::m_FAdd(), llvm::PatternMatch::m_FCmp(), llvm::PatternMatch::m_FDiv(), llvm::PatternMatch::m_FMul(), llvm::PatternMatch::m_FNeg(), llvm::PatternMatch::m_FRem(), llvm::PatternMatch::m_FSub(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_IDiv(), llvm::PatternMatch::m_LogicalShift(), llvm::PatternMatch::m_LShr(), llvm::PatternMatch::m_Mul(), llvm::PatternMatch::m_Neg(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_NSWAdd(), llvm::PatternMatch::m_NSWMul(), llvm::PatternMatch::m_NSWShl(), llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_NUWAdd(), llvm::PatternMatch::m_NUWMul(), llvm::PatternMatch::m_NUWShl(), llvm::PatternMatch::m_NUWSub(), llvm::PatternMatch::m_Or(), llvm::PatternMatch::m_OrdFMax(), llvm::PatternMatch::m_OrdFMin(), llvm::PatternMatch::m_SDiv(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Shl(), llvm::PatternMatch::m_Shr(), llvm::PatternMatch::m_SMax(), llvm::PatternMatch::m_SMin(), llvm::PatternMatch::m_SRem(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_UAddWithOverflow(), llvm::PatternMatch::m_UDiv(), llvm::PatternMatch::m_UMax(), llvm::PatternMatch::m_UMin(), llvm::PatternMatch::m_UnordFMax(), llvm::PatternMatch::m_UnordFMin(), llvm::PatternMatch::m_URem(), llvm::PatternMatch::m_Xor(), makeStatepointExplicit(), matchPairwiseReductionAtLevel(), llvm::matchSelectPattern(), mergeInlinedArrayAllocas(), llvm::AliasSet::mergeSetIn(), llvm::ConstantRange::multiply(), needToInsertPhisForLCSSA(), llvm::MCJIT::NotifyFreeingObject(), operator new(), llvm::LoopBodyTraits::LoopBodyFilter::operator()(), llvm::bfi_detail::operator*(), llvm::OnDiskIterableChainedHashTable< Info >::data_iterator::operator*(), llvm::operator<<(), llvm::LoopInfoBase< BasicBlock, Loop >::operator=(), llvm::operator>>(), llvm::RegionBase< RegionTr >::outermostLoopInRegion(), llvm::MCAsmParser::parseExpression(), fuzzer::ParseOneDictionaryEntry(), predictValueUseListOrderImpl(), llvm::TimerGroup::print(), llvm::LoopAccessLegacyAnalysis::print(), llvm::TimerGroup::printAll(), llvm::cl::generic_parser_base::printGenericOptionDiff(), llvm::PPCInstPrinter::printInst(), llvm::LoopVectorizePass::processLoop(), processMemAccess(), pushStackMapConstant(), llvm::LoopInfoBase< BasicBlock, Loop >::releaseMemory(), llvm::LoopInfoBase< BasicBlock, Loop >::removeBlock(), llvm::LoopInfoBase< BasicBlock, Loop >::removeLoop(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), llvm::replaceDbgValueForAlloca(), llvm::SparseBitVectorElement< ElementSize >::reset(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::IVUsersPrinterPass::run(), llvm::LoopAccessInfoPrinterPass::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::LoopDistributePass::run(), llvm::LoopUnrollPass::run(), llvm::LICMPass::run(), llvm::LoopVectorizePass::run(), llvm::LoadAndStorePromoter::run(), llvm::FunctionToLoopPassAdaptor< LoopPassT >::run(), llvm::LPPassManager::runOnFunction(), llvm::SparseBitVectorElement< ElementSize >::set(), llvm::SCEVExpander::setIVIncInsertPos(), llvm::DIEUnit::setLength(), llvm::MachinePassRegistry::setListener(), llvm::GVNExpression::LoadExpression::setLoadInst(), llvm::cl::opt_storage< DataType, ExternalStorage, std::is_class< DataType >::value >::setLocation(), llvm::cl::list_storage< DataType, StorageClass >::setLocation(), llvm::cl::bits_storage< DataType, Storage >::setLocation(), llvm::LoopBase< BasicBlock, Loop >::setParentLoop(), llvm::SCEVExpander::setPostInc(), llvm::ELF::Elf64_Rel::setSymbolAndType(), llvm::ELF::Elf64_Rela::setSymbolAndType(), simplifyLoopCFG(), llvm::ImutAVLTree< ImutInfo >::size(), SolveQuadraticEquation(), SortBlocks(), llvm::SplitBlock(), llvm::SplitBlockAndInsertIfThen(), llvm::SparseBitVectorElement< ElementSize >::test(), llvm::TimerGroup::TimerGroup(), llvm::ConstantRange::unionWith(), unpackLoadToAggregate(), llvm::UnrollLoop(), UpdateAnalysisInformation(), llvm::ValueEnumerator::ValueEnumerator(), llvm::LoopInfoBase< N, M >::verify(), llvm::SCEVLoopAddRecRewriter::visitAddRecExpr(), llvm::InstCombiner::visitExtractValueInst(), and llvm::TimerGroup::~TimerGroup().

return L && SB = *B->succ_begin()