IntRange:
authorStepan Dyatkovskiy <stpworld@narod.ru>
Mon, 2 Jul 2012 13:02:18 +0000 (13:02 +0000)
committerStepan Dyatkovskiy <stpworld@narod.ru>
Mon, 2 Jul 2012 13:02:18 +0000 (13:02 +0000)
commitb2833d9dcba88c6f0520cad760619200adc0442c
treeb793a8e3721adbc47bcc70fd848aea4ff6b47e1a
parent4177e6fff50552908bab510f1e896fa974a6f155
IntRange:
  - Changed isSingleNumber method behaviour. Now this flag is calculated on demand.
IntegersSubsetMapping
  - Optimized diff operation.
  - Replaced type of Items field from std::list with std::map.
  - Added new methods:
    bool isOverlapped(self &RHS)
    void add(self& RHS, SuccessorClass *S)
    void detachCase(self& NewMapping, SuccessorClass *Succ)
    void removeCase(SuccessorClass *Succ)
    SuccessorClass *findSuccessor(const IntTy& Val)
    const IntTy* getCaseSingleNumber(SuccessorClass *Succ)
IntegersSubsetTest
  - DiffTest: Added checks for successors.
SimplifyCFG
  Updated SwitchInst usage (now it is case-ragnes compatible) for
    - SimplifyEqualityComparisonWithOnlyPredecessor
    - FoldValueComparisonIntoPredecessors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159527 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/IntegersSubset.h
include/llvm/Support/IntegersSubsetMapping.h
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Transforms/Utils/LowerSwitch.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
test/Transforms/SimplifyCFG/switch_create.ll
unittests/Support/IntegersSubsetTest.cpp