1a710fdde197b00107ef55df51054925b9a5d2a2 |
|
24-Aug-2012 |
Manman Ren <mren@apple.com> |
BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle the case of multiple edges from one block to another. A simple example is a switch statement with multiple values to the same destination. The definition of an edge is modified from a pair of blocks to a pair of PredBlock and an index into the successors. Also set the weight correctly when building SelectionDAG from LLVM IR, especially when converting a Switch. IntegersSubsetMapping is updated to calculate the weight for each cluster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
b163a21940afb639bc8bb57810d48cfc116ea931 |
|
04-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Reverted r159658: Optimized diff operation: implemented the case when LHS and RHS subsets contains single numbers only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
66d79cefcb742bdbfef8823ac8491a7ebc4af5a7 |
|
04-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Reverted r156659, due to probable performance regressions, DenseMap should be used here: IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
9ccc83e7f70e63b746cbc7eef9fb06022e758677 |
|
03-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
IntegersSubsetMappin: cosmetic changes in diff operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
2e2a15e26b78a0958ccbac66a03850852721b9cf |
|
03-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Part of r159527. Splitted into series of patches and gone with fixed PR13256: IntegersSubsetMapping Added new methods - add(self& RHS, SuccessorClass *S) - detachCase - removeCase - findSuccessor - getCases - getCaseSingleNumber - isOverlapped git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
6a590737355e82d83729198715e3fff11b0c6f9e |
|
03-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Part of r159527. Splitted into series of patches and gone with fixed PR13256: IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
181e0bdafaf33524a9a7f082caf5459615f4ab30 |
|
03-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Part of r159527. Splitted into series of patches and gone with fixed PR13256: Optimized diff operation: implemented the case when LHS and RHS subsets contains single numbers only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
c723eb1aef817d47feec620933ee1ec6005cdd14 |
|
03-Jul-2012 |
Eric Christopher <echristo@apple.com> |
Revert "IntRange:" as it appears to be breaking self hosting. This reverts commit b2833d9dcba88c6f0520cad760619200adc0442c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
b2833d9dcba88c6f0520cad760619200adc0442c |
|
02-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
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
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
b787d41959163f6104af7b34a5ce719210dfb72f |
|
26-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
0f7a7bcd4820eee293f9300769e1ef4c1cbc1c7c |
|
26-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
IntegersSubsetMapping: removed exclude operation, it will replaced with more universal "diff" operation in next commit. Changes was separated onto two commits for better readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
5d59b0b38ea2b6f1860fe1e741fbaf1d7457c0b8 |
|
05-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
IntegersSubsetMapping: added exclude operation, that allows to exclude subset of integers from current mapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
20cb4919cd01967b11b0b468fd43167b263ed028 |
|
05-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
31219d2cec17dca632b6d047a15e86dc92b76e18 |
|
02-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
43eb31bfae470b33bab9a6764b98b5e8a0beeda5 |
|
02-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntRange converted from struct to class. So main change everywhere is replacement of ".Low/High" with ".getLow/getHigh()" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
4319a552ac98137d511341905711293d541f15e7 |
|
02-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntegersSubsetGeneric, IntegersSubsetMapping: added IntTy template parameter, that allows use either APInt or IntItem. This change allows to write unittest for these classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
6bb5c0074dc4cede2ad8efd420ec91288f91b012 |
|
01-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntegersSubset devided into IntegersSubsetGeneric and into IntegersSubset itself. The first has no references to ConstantInt and works with IntItem only. IntegersSubsetMapping also made generic. Here added second template parameter "IntegersSubsetTy" that allows to use on of two IntegersSubset types described below. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
f8d14c4ca3874890cfd8867d9557efca9511c98f |
|
01-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntItem cleanup. IntItemBase, IntItemConstantIntImp and IntItem merged into IntItem. All arithmetic operators was propogated from APInt. Also added comparison operators <,>,<=,>=. Currently you will find set of macros that propogates operators from APInt to IntItem in the beginning of IntegerSubset. Note that THESE MACROS WILL REMOVED after all passes will case-ranges compatible. Also note that these macros much smaller pain that something like this: if (V->getValue().ugt(AnotherV->getValue()) { ... } These changes made IntItem full featured integer object. It allows to make IntegerSubset class generic (move out all ConstantInt references inside and add unit-tests) in next commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|
0aa32d5d0ff6cd65b6cff957858a79e2d2a614bd |
|
29-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
ConstantRangesSet renamed to IntegersSubset. CRSBuilder renamed to IntegersSubsetMapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/IntegersSubsetMapping.h
|