implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr.

Factor some code better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125006 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2011-02-07 16:40:21 +00:00
parent 163a84bbce
commit f067d584a8
8 changed files with 239 additions and 211 deletions

View File

@@ -724,8 +724,12 @@ public:
static Constant *getNUWSub(Constant *C1, Constant *C2);
static Constant *getNSWMul(Constant *C1, Constant *C2);
static Constant *getNUWMul(Constant *C1, Constant *C2);
static Constant *getNSWShl(Constant *C1, Constant *C2);
static Constant *getNUWShl(Constant *C1, Constant *C2);
static Constant *getExactSDiv(Constant *C1, Constant *C2);
static Constant *getExactUDiv(Constant *C1, Constant *C2);
static Constant *getExactAShr(Constant *C1, Constant *C2);
static Constant *getExactLShr(Constant *C1, Constant *C2);
/// Transparently provide more efficient getOperand methods.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant);