LLVM
8.0.1
|
#include "llvm/Transforms/Scalar/PartiallyInlineLibCalls.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/Support/DebugCounter.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "partially-inline-libcalls" |
Functions | |
DEBUG_COUNTER (PILCounter, "partially-inline-libcalls-transform", "Controls transformations in partially-inline-libcalls") | |
static bool | optimizeSQRT (CallInst *Call, Function *CalledFunc, BasicBlock &CurrBB, Function::iterator &BB, const TargetTransformInfo *TTI) |
static bool | runPartiallyInlineLibCalls (Function &F, TargetLibraryInfo *TLI, const TargetTransformInfo *TTI) |
INITIALIZE_PASS_BEGIN (PartiallyInlineLibCallsLegacyPass, "partially-inline-libcalls", "Partially inline calls to library functions", false, false) INITIALIZE_PASS_END(PartiallyInlineLibCallsLegacyPass | |
Variables | |
partially inline | libcalls |
partially inline Partially calls to library | functions |
partially inline Partially calls to library | false |
Definition at line 26 of file PartiallyInlineLibCalls.cpp.
DEBUG_COUNTER | ( | PILCounter | , |
"partially-inline-libcalls-transform" | , | ||
"Controls transformations in partially-inline-libcalls" | |||
) |
INITIALIZE_PASS_BEGIN | ( | PartiallyInlineLibCallsLegacyPass | , |
"partially-inline-libcalls" | , | ||
"Partially inline calls to library functions" | , | ||
false | , | ||
false | |||
) |
Referenced by llvm::PartiallyInlineLibCallsPass::run().
|
static |
Definition at line 31 of file PartiallyInlineLibCalls.cpp.
References llvm::CallBase::addAttribute(), llvm::PHINode::addIncoming(), llvm::BasicBlock::begin(), llvm::Instruction::clone(), llvm::BasicBlock::Create(), llvm::Instruction::eraseFromParent(), llvm::AttributeList::FunctionIndex, llvm::ConstantFP::get(), llvm::BasicBlock::getContext(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::User::getOperand(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::TargetTransformInfo::isFCmpOrdCheaperThanFCmpZero(), llvm::CallBase::onlyReadsMemory(), llvm::Attribute::ReadNone, llvm::Value::replaceAllUsesWith(), llvm::DebugCounter::shouldExecute(), and llvm::SplitBlock().
Referenced by runPartiallyInlineLibCalls().
|
static |
Definition at line 90 of file PartiallyInlineLibCalls.cpp.
References llvm::Function::begin(), llvm::dyn_cast(), llvm::Function::end(), llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), llvm::TargetTransformInfo::haveFastSqrt(), llvm::ARM_PROC::IE, llvm::CallBase::isNoBuiltin(), and optimizeSQRT().
Referenced by llvm::PartiallyInlineLibCallsPass::run().
Definition at line 181 of file PartiallyInlineLibCalls.cpp.
Definition at line 181 of file PartiallyInlineLibCalls.cpp.
partially inline libcalls |
Definition at line 181 of file PartiallyInlineLibCalls.cpp.