From 1a9078b86217953dc478d5df8cb35d34284523d8 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Sat, 7 Aug 2010 05:47:46 +0000 Subject: Add an inverse() method to ConstantRange. llvm-svn: 110504 --- llvm/lib/Support/ConstantRange.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'llvm/lib/Support/ConstantRange.cpp') diff --git a/llvm/lib/Support/ConstantRange.cpp b/llvm/lib/Support/ConstantRange.cpp index fb04428..26a23ef 100644 --- a/llvm/lib/Support/ConstantRange.cpp +++ b/llvm/lib/Support/ConstantRange.cpp @@ -655,6 +655,17 @@ ConstantRange::lshr(const ConstantRange &Amount) const { return ConstantRange(min, max); } +ConstantRange ConstantRange::inverse() const { + if (isFullSet()) { + return ConstantRange(APInt::getNullValue(Lower.getBitWidth()), + APInt::getNullValue(Lower.getBitWidth())); + } else if (isEmptySet()) { + return ConstantRange(APInt::getAllOnesValue(Lower.getBitWidth()), + APInt::getAllOnesValue(Lower.getBitWidth())); + } + return ConstantRange(Upper, Lower); +} + /// print - Print out the bounds to a stream... /// void ConstantRange::print(raw_ostream &OS) const { -- cgit v1.1