Eric Christopher
b65acc61a5
Revert "IntRange:" as it appears to be breaking self hosting.
...
This reverts commit b2833d9dcba88c6f0520cad760619200adc0442c.
llvm-svn: 159618
2012-07-02 23:22:21 +00:00
Stepan Dyatkovskiy
8b9ecca42d
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
llvm-svn: 159527
2012-07-02 13:02:18 +00:00
Stepan Dyatkovskiy
593d358cf3
IntegersSubsetTest: Due to compilation failure with -std=c11, replaced -1UL with NOT_A_NUMBER constant (0xffff).
...
llvm-svn: 159207
2012-06-26 16:08:20 +00:00
Stepan Dyatkovskiy
e481e0daf4
IntegersSubsetMapping: implemented "diff" operation. Operation allows at the same time perform up to three operations:
...
- LHS exclude RHS
- LHS intersect RHS (LHS successors will keeped)
- RHS exclude LHS
The complexity is N+M, where
N is size of LHS
M is size of RHS.
llvm-svn: 159201
2012-06-26 11:57:43 +00:00
Stepan Dyatkovskiy
883850c4d2
IntegersSubsetMapping: removed exclude operation, it will replaced with more universal "diff" operation in next commit.
...
Changes was separated onto two commits for better readability.
llvm-svn: 159200
2012-06-26 11:41:47 +00:00
Stepan Dyatkovskiy
696835bb03
IntegersSubsetMapping: added exclude operation, that allows to exclude subset of integers from current mapping.
...
llvm-svn: 157989
2012-06-05 07:57:36 +00:00
Stepan Dyatkovskiy
f0a3c46739
IntegersSubsetMapping:
...
Changed type of Items collection: from std::vector to std::list.
Also some small fixes made in IntegersSubset.h, IntegersSubsetMapping.h and IntegersSubsetTest.cpp.
llvm-svn: 157987
2012-06-05 07:43:08 +00:00
Stepan Dyatkovskiy
8a28bf5dd1
Added unittests for IntegersSubset and IntegersSubsetMapping.
...
- Fixed IntegersSubsetGeneric copy/assignment behaviour.
- Fixed IntegersSubsetGeneric::getSize/getSingleValue methods.
- Fixed IntegersSubsetGeneric::verify method.
Also IntegersSubset.h and IntegersSubsetMapping.h headers was fixed.
llvm-svn: 157887
2012-06-02 13:47:12 +00:00