LLVM
8.0.1
|
#include "ValueEnumerator.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalIFunc.h"
#include "llvm/IR/GlobalObject.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/UseListOrder.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/IR/ValueSymbolTable.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <iterator>
#include <tuple>
#include <utility>
#include <vector>
Go to the source code of this file.
Functions | |
static void | orderValue (const Value *V, OrderMap &OM) |
static OrderMap | orderModule (const Module &M) |
static void | predictValueUseListOrderImpl (const Value *V, const Function *F, unsigned ID, const OrderMap &OM, UseListOrderStack &Stack) |
static void | predictValueUseListOrder (const Value *V, const Function *F, OrderMap &OM, UseListOrderStack &Stack) |
static UseListOrderStack | predictUseListOrder (const Module &M) |
static bool | isIntOrIntVectorValue (const std::pair< const Value *, unsigned > &V) |
static unsigned | getMetadataTypeOrder (const Metadata *MD) |
static void | IncorporateFunctionInfoGlobalBBIDs (const Function *F, DenseMap< const BasicBlock *, unsigned > &IDMap) |
Definition at line 712 of file ValueEnumerator.cpp.
References assert(), C, llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::dyn_cast(), E, F(), llvm::AttributeList::getAttributes(), llvm::User::getNumOperands(), llvm::Value::getType(), llvm::ValueEnumerator::getValueID(), llvm::AttributeSet::hasAttributes(), I, llvm::AttributeList::index_begin(), llvm::AttributeList::index_end(), llvm::UniqueVector< T >::insert(), llvm::AttributeList::isEmpty(), llvm::Type::isVoidTy(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), N, llvm::User::op_begin(), llvm::User::op_end(), llvm::User::operands(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::sort(), llvm::Type::subtypes(), and std::swap().
|
static |
Definition at line 1020 of file ValueEnumerator.cpp.
Referenced by llvm::ValueEnumerator::getGlobalBasicBlockID().
Definition at line 317 of file ValueEnumerator.cpp.
Referenced by llvm::ValueEnumerator::print().
Definition at line 103 of file ValueEnumerator.cpp.
References llvm::Module::aliases(), F(), G, llvm::Module::globals(), I, llvm::Module::ifuncs(), and orderValue().
Referenced by predictUseListOrder().
Definition at line 88 of file ValueEnumerator.cpp.
References C, llvm::User::getNumOperands(), and llvm::User::operands().
Referenced by orderModule().
|
static |
Definition at line 261 of file ValueEnumerator.cpp.
References E, F(), G, llvm::Module::globals(), I, llvm::GlobalValue::isDeclaration(), orderModule(), predictValueUseListOrder(), llvm::Module::rbegin(), and llvm::Module::rend().
Referenced by llvm::ValueEnumerator::ValueEnumerator().
|
static |
Definition at line 240 of file ValueEnumerator.cpp.
References assert(), C, llvm::User::getNumOperands(), llvm::User::operands(), predictValueUseListOrderImpl(), llvm::Value::use_begin(), llvm::Value::use_empty(), and llvm::Value::use_end().
Referenced by predictUseListOrder().
|
static |
Definition at line 171 of file ValueEnumerator.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T >::begin(), E, llvm::SmallVectorTemplateCommon< T >::end(), first, I, List, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorBase::size(), llvm::sort(), and llvm::Value::uses().
Referenced by predictValueUseListOrder().