LLVM
8.0.1
|
#include "AggressiveInstCombineInternal.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "aggressive-instcombine" |
Functions | |
static void | getRelevantOperands (Instruction *I, SmallVectorImpl< Value *> &Ops) |
Given an instruction and a container, it fills all the relevant operands of that instruction, with respect to the Trunc expression dag optimizaton. More... | |
static Type * | getReducedType (Value *V, Type *Ty) |
Given a reduced scalar type Ty and a V value, return a reduced type for V , according to its type, if it vector type, return the vector version of Ty , otherwise return Ty . More... | |
#define DEBUG_TYPE "aggressive-instcombine" |
Definition at line 38 of file TruncInstCombine.cpp.
Given a reduced scalar type Ty
and a V
value, return a reduced type for V
, according to its type, if it vector type, return the vector version of Ty
, otherwise return Ty
.
Definition at line 278 of file TruncInstCombine.cpp.
References llvm::MCID::Add, assert(), C, llvm::ConstantFoldConstant(), llvm::IRBuilder< T, Inserter >::CreateBinOp(), llvm::IRBuilder< T, Inserter >::CreateIntCast(), E, llvm::Instruction::eraseFromParent(), llvm::find(), llvm::VectorType::get(), llvm::ConstantExpr::getIntegerCast(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), I, Info, llvm::Type::isVectorTy(), llvm_unreachable, llvm::Value::replaceAllUsesWith(), and llvm::Value::takeName().
|
static |
Given an instruction and a container, it fills all the relevant operands of that instruction, with respect to the Trunc expression dag optimizaton.
Definition at line 42 of file TruncInstCombine.cpp.
References llvm::MCID::Add, assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::dyn_cast(), llvm::SmallVectorBase::empty(), llvm::IntegerType::get(), llvm::Type::getContext(), llvm::Value::getContext(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Type::getScalarSizeInBits(), llvm::DataLayout::getSmallestLegalIntType(), llvm::Value::getType(), llvm::Value::hasOneUse(), I, Info, llvm::DataLayout::isLegalInteger(), llvm::Type::isVectorTy(), llvm_unreachable, llvm::max(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::users().