LLVM 20.0.0git
Macros | Functions
TruncInstCombine.cpp File Reference
#include "AggressiveInstCombineInternal.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/Support/KnownBits.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "aggressive-instcombine"
 

Functions

 STATISTIC (NumExprsReduced, "Number of truncations eliminated by reducing bit " "width of expression graph")
 
 STATISTIC (NumInstrsReduced, "Number of instructions whose bit width was reduced")
 
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 graph optimizaton.
 
static TypegetReducedType (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.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aggressive-instcombine"

Definition at line 39 of file TruncInstCombine.cpp.

Function Documentation

◆ getReducedType()

static Type * getReducedType ( Value V,
Type Ty 
)
static

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 359 of file TruncInstCombine.cpp.

References assert(), llvm::VectorType::get(), and llvm::Type::isVectorTy().

◆ getRelevantOperands()

static void getRelevantOperands ( Instruction I,
SmallVectorImpl< Value * > &  Ops 
)
static

Given an instruction and a container, it fills all the relevant operands of that instruction, with respect to the Trunc expression graph optimizaton.

Definition at line 48 of file TruncInstCombine.cpp.

References I, llvm_unreachable, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ STATISTIC() [1/2]

STATISTIC ( NumExprsReduced  ,
"Number of truncations eliminated by reducing bit " "width of expression graph"   
)

◆ STATISTIC() [2/2]

STATISTIC ( NumInstrsReduced  ,
"Number of instructions whose bit width was reduced"   
)