LLVM  6.0.0svn
Classes | Namespaces | Macros | Enumerations | Functions
InstCombineInternal.h File Reference

This file provides internal interfaces used to implement the InstCombine. More...

#include "llvm/ADT/ArrayRef.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/TargetFolder.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/InstCombine/InstCombineWorklist.h"
#include "llvm/Transforms/Utils/Local.h"
#include <cassert>
#include <cstdint>
Include dependency graph for InstCombineInternal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::InstCombiner
 The core instruction combiner logic. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "instcombine"
 

Enumerations

enum  llvm::OverflowCheckFlavor {
  llvm::OCF_UNSIGNED_ADD, llvm::OCF_SIGNED_ADD, llvm::OCF_UNSIGNED_SUB, llvm::OCF_SIGNED_SUB,
  llvm::OCF_UNSIGNED_MUL, llvm::OCF_SIGNED_MUL, llvm::OCF_INVALID
}
 Specific patterns of overflow check idioms that we match. More...
 

Functions

static unsigned llvm::getComplexity (Value *V)
 Assign a complexity or rank value to LLVM Values. More...
 
static bool llvm::isCanonicalPredicate (CmpInst::Predicate Pred)
 Predicate canonicalization reduces the number of patterns that need to be matched by other transforms. More...
 
static Value * llvm::peekThroughBitcast (Value *V, bool OneUseOnly=false)
 Return the source operand of a potentially bitcasted value while optionally checking if it has one use. More...
 
static Constant * llvm::AddOne (Constant *C)
 Add one to a Constant. More...
 
static Constant * llvm::SubOne (Constant *C)
 Subtract one from a Constant. More...
 
static bool llvm::IsFreeToInvert (Value *V, bool WillInvertAllUses)
 Return true if the specified value is free to invert (apply ~ to). More...
 
static OverflowCheckFlavor llvm::IntrinsicIDToOverflowCheckFlavor (unsigned ID)
 Returns the OverflowCheckFlavor corresponding to a overflow_with_op intrinsic. More...
 

Detailed Description

This file provides internal interfaces used to implement the InstCombine.

Definition in file InstCombineInternal.h.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "instcombine"

Definition at line 47 of file InstCombineInternal.h.