|
LLVM
8.0.1
|
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/PatternMatch.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>

Go to the source code of this file.
Classes | |
| class | llvm::InstCombiner |
| The core instruction combiner logic. More... | |
Namespaces | |
| llvm | |
| This class represents lattice values for constants. | |
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... | |
| static Constant * | llvm::getSafeVectorConstantForBinop (BinaryOperator::BinaryOps Opcode, Constant *In, bool IsRHSConstant) |
| Some binary operators require special handling to avoid poison and undefined behavior. More... | |
This file provides internal interfaces used to implement the InstCombine.
Definition in file InstCombineInternal.h.
| #define DEBUG_TYPE "instcombine" |
Definition at line 48 of file InstCombineInternal.h.
1.8.13