summaryrefslogtreecommitdiff
path: root/include/llvm/Analysis/InstructionSimplify.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-02-09 17:15:04 +0000
committerChris Lattner <sabre@nondot.org>2011-02-09 17:15:04 +0000
commit81a0dc911586c77421c2255aa417dc9b350b9e20 (patch)
treef6a7b1c0a47ed7fa813cb89a3c0f5d48923bbdf5 /include/llvm/Analysis/InstructionSimplify.h
parent6bfd77e3158b10861c76529492eae24a573390a8 (diff)
downloadllvm-81a0dc911586c77421c2255aa417dc9b350b9e20.tar.gz
llvm-81a0dc911586c77421c2255aa417dc9b350b9e20.tar.bz2
llvm-81a0dc911586c77421c2255aa417dc9b350b9e20.tar.xz
Teach instsimplify some tricks about exact/nuw/nsw shifts.
improve interfaces to instsimplify to take this info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125196 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis/InstructionSimplify.h')
-rw-r--r--include/llvm/Analysis/InstructionSimplify.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/include/llvm/Analysis/InstructionSimplify.h b/include/llvm/Analysis/InstructionSimplify.h
index 9ad7bc6e8a..dff1ba2f7b 100644
--- a/include/llvm/Analysis/InstructionSimplify.h
+++ b/include/llvm/Analysis/InstructionSimplify.h
@@ -57,17 +57,18 @@ namespace llvm {
/// SimplifyShlInst - Given operands for a Shl, see if we can
/// fold the result. If not, this returns null.
- Value *SimplifyShlInst(Value *Op0, Value *Op1, const TargetData *TD = 0,
- const DominatorTree *DT = 0);
+ Value *SimplifyShlInst(Value *Op0, Value *Op1, bool isNSW, bool isNUW,
+ const TargetData *TD = 0, const DominatorTree *DT = 0);
/// SimplifyLShrInst - Given operands for a LShr, see if we can
/// fold the result. If not, this returns null.
- Value *SimplifyLShrInst(Value *Op0, Value *Op1, const TargetData *TD = 0,
- const DominatorTree *DT = 0);
+ Value *SimplifyLShrInst(Value *Op0, Value *Op1, bool isExact,
+ const TargetData *TD = 0, const DominatorTree *DT=0);
/// SimplifyAShrInst - Given operands for a AShr, see if we can
/// fold the result. If not, this returns null.
- Value *SimplifyAShrInst(Value *Op0, Value *Op1, const TargetData *TD = 0,
+ Value *SimplifyAShrInst(Value *Op0, Value *Op1, bool isExact,
+ const TargetData *TD = 0,
const DominatorTree *DT = 0);
/// SimplifyAndInst - Given operands for an And, see if we can