LLVM
8.0.1
|
#include "MCTargetDesc/HexagonShuffler.h"
#include "Hexagon.h"
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
struct | CVIUnits |
Macros | |
#define | DEBUG_TYPE "hexagon-shuffle" |
#define | MAX_JUMP_SLOTS (sizeof(jumpSlots) / sizeof(jumpSlots[0])) |
Typedefs | |
using | HVXInstsT = SmallVector< struct CVIUnits, 8 > |
Functions | |
static unsigned | makeAllBits (unsigned startBit, unsigned Lanes) |
static bool | checkHVXPipes (const HVXInstsT &hvxInsts, unsigned startIdx, unsigned usedUnits) |
Variables | |
struct { | |
unsigned first | |
unsigned second | |
} | jumpSlots [] = {{8, 4}, {8, 2}, {8, 1}, {4, 2}, {4, 1}, {2, 1}} |
#define DEBUG_TYPE "hexagon-shuffle" |
Definition at line 15 of file HexagonShuffler.cpp.
Definition at line 224 of file HexagonShuffler.cpp.
Referenced by llvm::HexagonShuffler::check().
using HVXInstsT = SmallVector<struct CVIUnits, 8> |
Definition at line 172 of file HexagonShuffler.cpp.
|
static |
Definition at line 181 of file HexagonShuffler.cpp.
References makeAllBits(), and llvm::SmallVectorBase::size().
Referenced by llvm::HexagonShuffler::check().
Definition at line 174 of file HexagonShuffler.cpp.
Referenced by checkHVXPipes().
unsigned first |
Definition at line 221 of file HexagonShuffler.cpp.
Referenced by addAndInterleaveWithUnsupported(), llvm::PassManagerBuilder::addExtension(), llvm::ModuleSummaryIndex::addModule(), llvm::AccelTable< llvm::DWARF5AccelTableData >::addName(), AnalyzeReturnValues(), CC_Lanai32_VarArg(), llvm::ARMTargetLowering::CCAssignFnForReturn(), llvm::HexagonShuffler::check(), CleanupPointerRootUsers(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::clearAndLeakNodesUnsafely(), llvm::MachineRegisterInfo::clearSimpleHint(), CloneLoop(), ContainsReg(), ConvertTwoCaseSwitch(), llvm::createMergeFunctionsPass(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), CriticalPathStep(), llvm::GVNExpression::Expression::dump(), llvm::MCAsmMacroParameter::dump(), llvm::Loop::dumpVerbose(), llvm::StringMatcher::Emit(), llvm::MachineRegisterInfo::EmitLiveInCopies(), emitSignedInt64(), EqualityPropUnSafe(), ExpandBVWithShuffles(), FindFirstNonCommonLetter(), llvm::sampleprof::FunctionSamples::findFunctionSamples(), findMatchingInlineAsmOperand(), findProfitablePHIs(), getDivRemArgList(), llvm::detail::DenseMapPair< unsigned, unsigned >::getFirst(), GetFPLibCall(), llvm::InsertPointAnalysis::getLastInsertPoint(), getMOVL(), llvm::getNumBytesForUTF8(), getOpenCLAlignment(), llvm::NVPTXTargetLowering::getPrototype(), getReassignedChan(), llvm::MachineRegisterInfo::getRegClass(), getSuccPad(), llvm::ARCTargetLowering::getTargetNodeName(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::hashing::detail::hash_combine_range_impl(), llvm::HexagonCVIResource::HexagonCVIResource(), INITIALIZE_PASS(), InitializeUniqueCases(), InlineHistoryIncludes(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::insert(), isDbgValueDescribedByReg(), isDebug(), isMustExecuteIn(), isOnlyReachableViaThisEdge(), isStrideMul(), LookForIdenticalPHI(), llvm::HexagonTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), LowerCallResult(), llvm::SelectionDAGBuilder::LowerCallTo(), LowerPREFETCH(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), mayUsePostIncMode(), llvm::LegalizerInfo::moreToWiderTypesAndLessToWidest(), nodeListToNodeArray(), llvm::safestack::operator<<(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), p_bre(), p_ere(), llvm::itanium_demangle::parse_discriminator(), predictValueUseListOrderImpl(), PrepareCall(), llvm::ValueEnumerator::print(), llvm::itanium_demangle::FloatLiteralImpl< Float >::printLeft(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), llvm::ModuleSymbolTable::printSymbolName(), PropagateConstantsIntoArguments(), llvm::cl::ResetAllOptionOccurrences(), llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::resolveForwardTemplateRefs(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::InlinerPass::run(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FunctionLoweringInfo::set(), setImmutableRefs(), sortSubCommands(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::splice(), llvm::HexagonBlockRanges::IndexRange::start(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::start(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::stop(), llvm::IntervalMapImpl::BranchNode< KeyT, ValT, RootBranchCap, Traits >::subtree(), llvm::SymbolTableListTraits< Instruction >::transferNodesFromList(), TypeSizeToSizeIndex(), llvm::SelectionDAGBuilder::UpdateSplitBlock(), widen_1(), and widen_8_16().
struct { ... } jumpSlots[] |
Referenced by llvm::HexagonShuffler::check().
unsigned second |
Definition at line 222 of file HexagonShuffler.cpp.
Referenced by llvm::ModuleSummaryIndex::addGlobalValueSummary(), llvm::mca::RegisterFile::addRegisterWrite(), analyzeLoopUnrollCost(), AnalyzeReturnValues(), AntiDepEdges(), buildClonedLoops(), llvm::LazyCallGraph::buildRefSCCs(), canonicalizePHIOperands(), CC_Lanai32_VarArg(), llvm::ARMTargetLowering::CCAssignFnForReturn(), llvm::HexagonShuffler::check(), llvm::MachineRegisterInfo::clearVirtRegs(), llvm::FunctionComparator::compare(), computeDomSubtreeCost(), llvm::rdf::Liveness::computePhiInfo(), ContainsReg(), ConvertTwoCaseSwitch(), createCallInst(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::MDBuilder::createTBAAStructTypeNode(), llvm::LegalizerInfo::decreaseToSmallerTypesAndIncreaseToSmallest(), llvm::MachineRegisterInfo::EmitLiveInCopies(), llvm::HexagonBlockRanges::IndexRange::end(), ExpandBVWithShuffles(), llvm::sampleprof::FunctionSamples::findFunctionSamples(), findMatchingInlineAsmOperand(), findProfitablePHIs(), llvm::FunctionComparator::functionHash(), generateEquivalentSub(), llvm::msf::MSFBuilder::generateLayout(), llvm::WebAssemblyExceptionInfo::getAnalysisUsage(), GetConstantInt(), getInputChainForNode(), getLAScore(), getMOVL(), getReassignedChan(), llvm::detail::DenseMapPair< unsigned, unsigned >::getSecond(), getSuccPad(), llvm::DwarfStringPoolEntryRef::getSymbol(), llvm::ModuleSymbolTable::getSymbolFlags(), llvm::ARCTargetLowering::getTargetNodeName(), llvm::StringMapEntry< llvm::Comdat >::getValue(), HandleMergeInputChains(), llvm::HexagonCVIResource::HexagonCVIResource(), llvm::GISelWorkList< 8 >::insert(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), isDbgValueDescribedByReg(), isDebug(), isOnlyReachableViaThisEdge(), llvm::HexagonMCInstrInfo::isOrderedDuplexPair(), isSafeAndProfitableToSpeculateAroundPHI(), llvm::LazyCallGraph::LazyCallGraph(), LookForIdenticalPHI(), llvm::HexagonTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), LowerCallResult(), maybePrintCallAddrSpace(), llvm::LegalizerInfo::moreToWiderTypesAndLessToWidest(), llvm::MemorySSA::moveTo(), PrepareCall(), printFPOReg(), llvm::cl::PrintOptionValues(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), PropagateConstantsIntoArguments(), propagateSwiftErrorVRegs(), llvm::DemandedBitsWrapperPass::releaseMemory(), llvm::CallGraphNode::removeAnyCallEdgeTo(), llvm::mca::RegisterFile::removeRegisterWrite(), replaceShuffleOfInsert(), llvm::cl::ResetAllOptionOccurrences(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SelectionDAGISel::SelectCodeCommon(), selectI64Imm(), sortSubCommands(), splitCallSite(), llvm::IntervalMapImpl::BranchNode< KeyT, ValT, RootBranchCap, Traits >::stop(), llvm::mca::RegisterFile::tryEliminateMove(), unswitchNontrivialInvariants(), llvm::DWARFUnit::updateAddressDieMap(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::value(), llvm::ValueEnumerator::ValueEnumerator(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::MemorySSA::SkipSelfWalker::verify(), llvm::sroa::AllocaSliceRewriter::visit(), and llvm::LazyCallGraph::visitReferences().