LLVM  8.0.1
Macros | Functions | Variables
Mips16ISelLowering.cpp File Reference
#include "Mips16ISelLowering.h"
#include "MCTargetDesc/MipsBaseInfo.h"
#include "Mips16HardFloatInfo.h"
#include "MipsMachineFunction.h"
#include "MipsRegisterInfo.h"
#include "MipsTargetMachine.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/Support/CommandLine.h"
Include dependency graph for Mips16ISelLowering.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "mips-lower"
 
#define P_   "__mips16_call_stub_"
 
#define MAX_STUB_NUMBER   10
 
#define T1   P "1", P "2", 0, 0, P "5", P "6", 0, 0, P "9", P "10"
 
#define T   P "0" , T1
 
#define P   P_
 
#define P   P_ "sf_"
 
#define P   P_ "df_"
 
#define P   P_ "sc_"
 
#define P   P_ "dc_"
 

Functions

static unsigned Mips16WhichOp8uOr16simm (unsigned shortOp, unsigned longOp, int64_t Imm)
 

Variables

static cl::opt< boolDontExpandCondPseudos16 ("mips16-dont-expand-cond-pseudo", cl::init(false), cl::desc("Don't expand conditional move related " "pseudos for Mips 16"), cl::Hidden)
 
static const Mips16Libcall HardFloatLibCalls []
 
static const Mips16IntrinsicHelperType Mips16IntrinsicHelper []
 
static char constvMips16Helper [MAX_STUB_NUMBER+1]
 
static char constsfMips16Helper [MAX_STUB_NUMBER+1]
 
static char constdfMips16Helper [MAX_STUB_NUMBER+1]
 
static char constscMips16Helper [MAX_STUB_NUMBER+1]
 
static char constdcMips16Helper [MAX_STUB_NUMBER+1]
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mips-lower"

Definition at line 25 of file Mips16ISelLowering.cpp.

◆ MAX_STUB_NUMBER

#define MAX_STUB_NUMBER   10

Definition at line 346 of file Mips16ISelLowering.cpp.

◆ P [1/5]

#define P   P_

Definition at line 365 of file Mips16ISelLowering.cpp.

◆ P [2/5]

#define P   P_ "sf_"

Definition at line 365 of file Mips16ISelLowering.cpp.

◆ P [3/5]

#define P   P_ "df_"

Definition at line 365 of file Mips16ISelLowering.cpp.

◆ P [4/5]

#define P   P_ "sc_"

Definition at line 365 of file Mips16ISelLowering.cpp.

◆ P [5/5]

#define P   P_ "dc_"

Definition at line 365 of file Mips16ISelLowering.cpp.

◆ P_

#define P_   "__mips16_call_stub_"

Definition at line 345 of file Mips16ISelLowering.cpp.

◆ T

#define T   P "0" , T1
Examples:
/home/cs6340/llvm-8.0.1.src/include/llvm/ADT/ilist_node.h.

Definition at line 348 of file Mips16ISelLowering.cpp.

Referenced by llvm::ImmutableMap< KeyT, ValT, ValInfo >::Factory::add(), llvm::ImutAVLFactory< ImutInfo >::add(), llvm::LLVMTargetMachine::addAsmPrinter(), adjustedSumFreq(), llvm::ms_demangle::ArenaAllocator::alloc(), llvm::ms_demangle::ArenaAllocator::allocArray(), llvm::Any::Any(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::DwarfDebug::beginModule(), BinomialCoefficient(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), llvm::SmallVectorTemplateCommon< T >::capacity_in_bytes(), llvm::MCSubtargetInfo::checkFeatures(), llvm::VarInit::classof(), llvm::VarBitInit::classof(), llvm::VarListElementInit::classof(), llvm::TimerGroup::clear(), llvm::PriorityWorklist< llvm::LazyCallGraph::SCC *, SmallVector< llvm::LazyCallGraph::SCC *, N >, SmallDenseMap< llvm::LazyCallGraph::SCC *, ptrdiff_t > >::clear(), llvm::hashing::detail::hash_combine_recursive_helper::combine_data(), llvm::rdf::Liveness::computePhiInfo(), llvm::ConstantFoldBinaryInstruction(), llvm::codeview::consume(), ConvertIntToBytes(), llvm::SmallPtrSetImplBase::CopyFrom(), createGlobalFwdRef(), llvm::ImutAVLFactory< ImutInfo >::createNode(), llvm::CreateX86AsmInstrumentation(), llvm::depth_first_ext(), llvm::codeview::serialize_arrayref_tail_impl< T >::deserialize(), detectPopcountIdiom(), llvm::AsmPrinter::doFinalization(), llvm::PointerUnion< const Value *, const PseudoSourceValue * >::dyn_cast(), llvm::PointerUnion3< PT1, PT2, PT3 >::dyn_cast(), llvm::PointerUnion4< std::vector< uint8_t > *, std::vector< uint16_t > *, std::vector< uint32_t > *, std::vector< uint64_t > * >::dyn_cast(), eatBytes(), llvm::AsmPrinter::EmitDebugValue(), llvm::AsmPrinter::EmitFunctionBody(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::Optional< uint64_t >::emplace(), llvm::ImmutableListFactory< T >::emplace(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::emplace_back(), llvm::detail::zippy< ItType, Args >::end(), llvm::detail::zip_longest_range< Args >::end(), llvm::PriorityWorklist< llvm::LazyCallGraph::SCC *, SmallVector< llvm::LazyCallGraph::SCC *, N >, SmallDenseMap< llvm::LazyCallGraph::SCC *, ptrdiff_t > >::erase(), llvm::PriorityWorklist< llvm::LazyCallGraph::SCC *, SmallVector< llvm::LazyCallGraph::SCC *, N >, SmallDenseMap< llvm::LazyCallGraph::SCC *, ptrdiff_t > >::erase_if(), llvm::erase_if(), llvm::FixedStreamArray< PSHashRecord >::FixedStreamArray(), llvm::PointerUnion3< PT1, PT2, PT3 >::get(), llvm::PointerUnion4< std::vector< uint8_t > *, std::vector< uint16_t > *, std::vector< uint32_t > *, std::vector< uint64_t > * >::get(), llvm::ConstantStruct::get(), llvm::Triple::get32BitArchVariant(), llvm::Triple::get64BitArchVariant(), getAccelTable(), llvm::rdf::Liveness::getAllReachedUses(), getAttrKindEncoding(), llvm::getBestSimplifyQuery(), llvm::Triple::getBigEndianArchVariant(), llvm::ImutAVLFactory< ImutInfo >::getCanonicalTree(), llvm::LLParser::getContext(), llvm::pdb::DbiStream::getDebugStreamIndex(), getDefaultPersonalityFn(), llvm::object::ELFFile< ELFT >::getEntry(), llvm::GraphTraits< Type * >::getEntryNode(), llvm::GraphTraits< const Type * >::getEntryNode(), llvm::sampleprof::FunctionSamples::getEntrySamples(), llvm::PointerLikeTypeTraits< PointerEmbeddedInt< IntT, Bits > >::getFromVoidPointer(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), getIntrinsicParamType(), llvm::orc::rpc::RPCFunctionIdAllocator< T, typename std::enable_if< std::is_integral< T >::value >::type >::getInvalidId(), llvm::Triple::getLittleEndianArchVariant(), llvm::ImutAVLTree< ImutInfo >::getMaxElement(), getMinimumFPType(), llvm::rdf::Liveness::getNearestAliasedRef(), llvm::orc::rpc::RPCFunctionIdAllocator< T, typename std::enable_if< std::is_integral< T >::value >::type >::getNegotiateId(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::getNextNode(), getNumAllocatableRegsForConstraints(), llvm::ScopedPrinter::getOStream(), llvm::orc::rpc::RPCFunctionIdAllocator< T, typename std::enable_if< std::is_integral< T >::value >::type >::getResponseId(), getStruct(), getStructOrErr(), getTypeString(), llvm::PackedVectorBase< T, BitNum, BitVectorTy, false >::getValue(), llvm::PackedVectorBase< T, BitNum, BitVectorTy, true >::getValue(), llvm::yaml::ScalarNode::getValue(), getVCmpInst(), llvm::yaml::Node::getVerbatimTag(), llvm::SimplifyQuery::getWithInstruction(), llvm::GreatestCommonDivisor64(), llvm::handleAllErrors(), hasConflictingReferenceFlags(), llvm::rdf::RegisterAggr::hasCoverOf(), hasProfileData(), hasSingleUsesFromRoot(), hasZeroSignBit(), llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::identifyKnownAlignedObject(), indexReallyValid(), llvm::RegAllocBase::init(), INITIALIZE_PASS(), llvm::PriorityWorklist< llvm::LazyCallGraph::SCC *, SmallVector< llvm::LazyCallGraph::SCC *, N >, SmallDenseMap< llvm::LazyCallGraph::SCC *, ptrdiff_t > >::insert(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::insert(), insertSinCosCall(), llvm::rdf::RegisterAggr::intersectWith(), llvm::PointerUnion< const Value *, const PseudoSourceValue * >::is(), llvm::PointerUnion3< PT1, PT2, PT3 >::is(), llvm::PointerUnion4< std::vector< uint8_t > *, std::vector< uint16_t > *, std::vector< uint32_t > *, std::vector< uint64_t > * >::is(), is_ns_word_char(), llvm::IsCPSRDead< MCInst >(), llvm::ImutAVLFactory< ImutInfo >::isEmpty(), llvm::HexagonSubtarget::isHVXVectorType(), llvm::ilist_node_impl< ilist_detail::compute_node_options< Instruction, Options... >::type >::isSentinel(), isSupportedType(), llvm::AArch64_AM::isSVEMaskOfIdenticalElements(), llvm::MCAsmLexer::Lex(), LLVMOrcCreateInstance(), llvm::xray::loadTrace(), llvm::TargetRegistry::lookupTarget(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerConstantPool(), llvm::PatternMatch::m_Br(), llvm::make_unique(), llvm::maskLeadingOnes(), llvm::maskLeadingZeros(), llvm::maskTrailingOnes(), llvm::maskTrailingZeros(), llvm::SmallVectorTemplateCommon< T >::max_size(), llvm::simple_ilist< MachineInstr, Options... >::merge(), llvm::detail::DoubleAPFloat::multiply(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::Iterator::operator++(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::ConstIterator::operator++(), llvm::Module::debug_compile_units_iterator::operator++(), llvm::DIExpression::expr_op_iterator::operator++(), llvm::operator<<(), llvm::rdf::operator<<(), llvm::optional_detail::OptionalStorage< uint64_t >::operator=(), llvm::iterator_facade_base< concat_iterator< ValueT, IterTs... >, std::forward_iterator_tag, ValueT >::operator[](), llvm::FixedStreamArray< PSHashRecord >::operator[](), llvm::optional_detail::OptionalStorage< uint64_t >::OptionalStorage(), llvm::itanium_demangle::parse_discriminator(), llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseExpr(), llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseExprPrimary(), parseImmediate(), llvm::MCAsmParser::parseOptionalToken(), llvm::PriorityWorklist< llvm::LazyCallGraph::SCC *, SmallVector< llvm::LazyCallGraph::SCC *, N >, SmallDenseMap< llvm::LazyCallGraph::SCC *, ptrdiff_t > >::pop_back(), llvm::HexagonDAGToDAGISel::PreprocessISelDAG(), llvm::LinkDiagnosticInfo::print(), llvm::TimeRecord::print(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::BinaryStreamReader::readArray(), llvm::msgpack::Reader::readExt(), llvm::msgpack::Reader::readInt(), llvm::msgpack::Reader::readLength(), llvm::msgpack::Reader::readRaw(), readsVCCZ(), llvm::msgpack::Reader::readUInt(), llvm::TargetRegistry::RegisterTarget(), llvm::ImmutableMap< KeyT, ValT, ValInfo >::Factory::remove(), llvm::ImutAVLFactory< ImutInfo >::remove(), llvm::ImutAVLFactory< ImutInfo >::remove_internal(), removeConstantFactors(), llvm::ImutAVLFactory< ImutInfo >::removeMinBinding(), llvm::optional_detail::OptionalStorage< uint64_t >::reset(), llvm::rdf::Liveness::resetLiveIns(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::resize(), llvm::WholeProgramDevirtPass::run(), ScaleVectorOffset(), llvm::rdf::NodeAttrs::set_type(), llvm::setCurrentDebugTypes(), llvm::MachineFrameInfo::setFrameAddressIsTaken(), llvm::Module::setTargetTriple(), llvm::PMDataManager::setTopLevelManager(), llvm::GVNExpression::BasicExpression::setType(), llvm::PackedVectorBase< T, BitNum, BitVectorTy, false >::setValue(), llvm::PackedVectorBase< T, BitNum, BitVectorTy, true >::setValue(), shouldEmitUdt(), llvm::SelectionDAG::simplifySelect(), simplifySelectWithFCmp(), SinkCommonCodeFromPredecessors(), llvm::FixedStreamArray< PSHashRecord >::size(), llvm::SmallVectorTemplateCommon< T >::size_in_bytes(), SizeForSuffix(), SolveQuadraticAddRecExact(), SolveQuadraticAddRecRange(), llvm::APIntOps::SolveQuadraticEquationWrap(), llvm::simple_ilist< MachineInstr, Options... >::sort(), llvm::HexagonBlockRanges::RangeList::subtract(), llvm::rdf::Liveness::trace(), truncateToSize(), TypeSizeToSizeIndex(), llvm::HexagonSubtarget::usePredicatedCalls(), llvm::json::Value::Value(), llvm::VerifierSupport::VerifierSupport(), llvm::visitAll(), whichFPReturnVariant(), llvm::BinaryStreamWriter::writeArray(), llvm::BinaryStreamWriter::writeInteger(), llvm::zip(), llvm::zip_first(), llvm::zip_longest(), and llvm::TimerGroup::~TimerGroup().

◆ T1

#define T1   P "1", P "2", 0, 0, P "5", P "6", 0, 0, P "9", P "10"

Function Documentation

◆ Mips16WhichOp8uOr16simm()

static unsigned Mips16WhichOp8uOr16simm ( unsigned  shortOp,
unsigned  longOp,
int64_t  Imm 
)
static

Variable Documentation

◆ dcMips16Helper

char const* dcMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 366 of file Mips16ISelLowering.cpp.

◆ dfMips16Helper

char const* dfMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 358 of file Mips16ISelLowering.cpp.

◆ DontExpandCondPseudos16

cl::opt<bool> DontExpandCondPseudos16("mips16-dont-expand-cond-pseudo", cl::init(false), cl::desc("Don't expand conditional move related " "pseudos for Mips 16"), cl::Hidden)
static

Referenced by Mips16WhichOp8uOr16simm().

◆ HardFloatLibCalls

const Mips16Libcall HardFloatLibCalls[]
static

Definition at line 58 of file Mips16ISelLowering.cpp.

◆ Mips16IntrinsicHelper

const Mips16IntrinsicHelperType Mips16IntrinsicHelper[]
static
Initial value:
= {
{"__fixunsdfsi", "__mips16_call_stub_2" },
{"ceil", "__mips16_call_stub_df_2"},
{"ceilf", "__mips16_call_stub_sf_1"},
{"copysign", "__mips16_call_stub_df_10"},
{"copysignf", "__mips16_call_stub_sf_5"},
{"cos", "__mips16_call_stub_df_2"},
{"cosf", "__mips16_call_stub_sf_1"},
{"exp2", "__mips16_call_stub_df_2"},
{"exp2f", "__mips16_call_stub_sf_1"},
{"floor", "__mips16_call_stub_df_2"},
{"floorf", "__mips16_call_stub_sf_1"},
{"log2", "__mips16_call_stub_df_2"},
{"log2f", "__mips16_call_stub_sf_1"},
{"nearbyint", "__mips16_call_stub_df_2"},
{"nearbyintf", "__mips16_call_stub_sf_1"},
{"rint", "__mips16_call_stub_df_2"},
{"rintf", "__mips16_call_stub_sf_1"},
{"sin", "__mips16_call_stub_df_2"},
{"sinf", "__mips16_call_stub_sf_1"},
{"sqrt", "__mips16_call_stub_df_2"},
{"sqrtf", "__mips16_call_stub_sf_1"},
{"trunc", "__mips16_call_stub_df_2"},
{"truncf", "__mips16_call_stub_sf_1"},
}

Definition at line 95 of file Mips16ISelLowering.cpp.

◆ scMips16Helper

char const* scMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 362 of file Mips16ISelLowering.cpp.

◆ sfMips16Helper

char const* sfMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 354 of file Mips16ISelLowering.cpp.

◆ vMips16Helper

char const* vMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{nullptr, T1 }
#define T1

Definition at line 350 of file Mips16ISelLowering.cpp.