LLVM  6.0.0svn
Functions
IRMover.cpp File Reference
#include "llvm/Linker/IRMover.h"
#include "LinkDiagnosticInfo.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/Triple.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DiagnosticPrinter.h"
#include "llvm/IR/GVMaterializer.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/TypeFinder.h"
#include "llvm/Support/Error.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include <utility>
Include dependency graph for IRMover.cpp:

Go to the source code of this file.

Functions

static void forceRenaming (GlobalValue *GV, StringRef Name)
 The LLVM SymbolTable class autorenames globals that conflict in the symbol table. More...
 
static void getArrayElements (const Constant *C, SmallVectorImpl< Constant *> &Dest)
 
static std::string adjustInlineAsm (const std::string &InlineAsm, const Triple &Triple)
 Return InlineAsm adjusted with target-specific directives if required. More...
 

Function Documentation

◆ adjustInlineAsm()

static std::string adjustInlineAsm ( const std::string &  InlineAsm,
const Triple Triple 
)
static

Return InlineAsm adjusted with target-specific directives if required.

For ARM and Thumb, we have to add directives to select the appropriate ISA to support mixing module-level inline assembly from ARM and Thumb modules.

Definition at line 1266 of file IRMover.cpp.

References llvm::Triple::arm, llvm::Triple::armeb, assert(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::Triple::getArch(), llvm::GlobalValue::isDeclaration(), llvm::reverse(), llvm::RF_NullMapMissingGlobalValues, llvm::Triple::thumb, and llvm::Triple::thumbeb.

◆ forceRenaming()

static void forceRenaming ( GlobalValue GV,
StringRef  Name 
)
static

◆ getArrayElements()

static void getArrayElements ( const Constant C,
SmallVectorImpl< Constant *> &  Dest 
)
static

Definition at line 763 of file IRMover.cpp.

References llvm::NamedMDNode::addOperand(), llvm::Module::Append, llvm::Module::AppendUnique, assert(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), C, llvm::GlobalVariable::copyAttributesFrom(), llvm::GlobalObject::copyMetadata(), DC, llvm::dyn_cast(), E, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase::empty(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::end(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::Function::end(), llvm::SmallVectorImpl< T >::erase(), llvm::GlobalVariable::eraseFromParent(), llvm::GlobalValue::eraseFromParent(), llvm::Module::Error, F(), llvm::ValueMap< KeyT, ValueT, Config >::find(), forceRenaming(), llvm::StructType::get(), llvm::ArrayType::get(), llvm::MDNode::get(), llvm::MDTuple::get(), llvm::PointerType::getAddressSpace(), llvm::Constant::getAggregateElement(), llvm::GlobalAlias::getAliasee(), llvm::GlobalObject::getAlignment(), llvm::Function::getBasicBlockList(), llvm::ConstantExpr::getBitCast(), llvm::GlobalValue::getComdat(), llvm::Value::getContext(), llvm::SequentialType::getElementType(), llvm::GlobalVariable::getInitializer(), llvm::Type::getInt8Ty(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::SequentialType::getNumElements(), llvm::MDNode::getNumOperands(), llvm::NamedMDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::NamedMDNode::getOperand(), llvm::Function::getPersonalityFn(), llvm::Function::getPrefixData(), llvm::Function::getPrologueData(), llvm::GlobalObject::getSection(), llvm::MDString::getString(), llvm::GlobalValue::getThreadLocalMode(), llvm::Value::getType(), llvm::GlobalValue::getType(), llvm::GlobalValue::getValueType(), llvm::GlobalValue::getVisibility(), llvm::ConstantInt::getZExtValue(), llvm::GlobalValue::hasAppendingLinkage(), llvm::GlobalValue::hasGlobalUnnamedAddr(), llvm::GlobalValue::hasLocalLinkage(), llvm::Function::hasPersonalityFn(), llvm::Function::hasPrefixData(), llvm::Function::hasPrologueData(), I, llvm::ARM_PROC::IE, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::GlobalValue::InternalLinkage, llvm::GlobalVariable::isConstant(), llvm::GlobalValue::isDeclaration(), llvm::GlobalValue::isDeclarationForLinker(), llvm_unreachable, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::makeArrayRef(), llvm::GlobalValue::materialize(), llvm::Module::Max, llvm::ValueMap< KeyT, ValueT, Config >::MD(), llvm::none_of(), llvm::MDNode::op_begin(), llvm::MDNode::op_end(), llvm::Module::Override, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::Intrinsic::remangleIntrinsicFunction(), llvm::remove_if(), llvm::Value::replaceAllUsesWith(), llvm::Module::Require, llvm::SmallVectorImpl< T >::reserve(), llvm::MipsISD::Ret, llvm::PPCISD::SC, llvm::GlobalValue::setLinkage(), llvm::NamedMDNode::setOperand(), llvm::Function::setPersonalityFn(), llvm::Function::setPrefixData(), llvm::Function::setPrologueData(), llvm::Comdat::setSelectionKind(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::size(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), llvm::ARM_MB::ST, llvm::Function::stealArgumentListFrom(), llvm::Constant::stripPointerCasts(), llvm::Error::success(), and llvm::Module::Warning.