#
0e46d8a0 |
| 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()"
llvm-svn: 157884
|
#
9549f589 |
| 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.
ll
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.
llvm-svn: 157880
show more ...
|
#
66305749 |
| 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 al
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.
llvm-svn: 157815
show more ...
|
#
58107dd5 |
| 29-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
ConstantRangesSet renamed to IntegersSubset. CRSBuilder renamed to IntegersSubsetMapping.
llvm-svn: 157612
|
#
913869be |
| 28-May-2012 |
Peter Collingbourne <peter@pcc.me.uk> |
Add llvm.fabs intrinsic.
llvm-svn: 157594
|
#
e3e19cbb |
| 28-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: Case Ranges Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now? 1. It will very difficult to implement case ranges as series of small patches. We got
PR1255: Case Ranges Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now? 1. It will very difficult to implement case ranges as series of small patches. We got several large and heavy patches. Each patch will about 90-120 kb. If you replace ConstantInt with APInt in SwitchInst you will need to changes at the same time all Readers,Writers and absolutely all passes that uses SwitchInst. 2. We can implement APInt pool inside and save memory space. E.g. we use several switches that works with 256 bit items (switch on signatures, or strings). We can avoid value duplicates in this case. 3. IntItem can be easyly easily replaced with APInt. 4. Currenly we can interpret IntItem both as ConstantInt and as APInt. It allows to provide SwitchInst methods that works with ConstantInt for non-updated passes.
Why I need it right now? Currently I need to update SimplifyCFG pass (EqualityComparisons). I need to work with APInts directly a lot, so peaces of code ConstantInt *V = ...; if (V->getValue().ugt(AnotherV->getValue()) { ... } will look awful. Much more better this way: IntItem V = ConstantIntVal->getValue(); if (AnotherV < V) { }
Of course any reviews are welcome.
P.S.: I'm also going to rename ConstantRangesSet to IntegersSubset, and CRSBuilder to IntegersSubsetMapping (allows to map individual subsets of integers to the BasicBlocks). Since in future these classes will founded on APInt, it will possible to use them in more generic ways.
llvm-svn: 157576
show more ...
|
#
abb3fa69 |
| 27-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Missed parens.
llvm-svn: 157527
|
#
4b8f8e75 |
| 27-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
r157525 didn't work, just disable iterator checking.
This is obviosly right but I don't see how to do this with proper vector iterators without building a horrible mess of workarounds.
llvm-svn: 15
r157525 didn't work, just disable iterator checking.
This is obviosly right but I don't see how to do this with proper vector iterators without building a horrible mess of workarounds.
llvm-svn: 157526
show more ...
|
#
48ff2751 |
| 27-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SDAGBuilder: Avoid iterator invalidation harder.
vector.begin()-1 is invalid too.
llvm-svn: 157525
|
#
5aad872f |
| 26-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SDAGBuilder: Don't create an invalid iterator when there is only one switch case.
Found by libstdc++'s debug mode.
llvm-svn: 157522
|
#
f2beccf6 |
| 26-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SelectionDAGBuilder: When emitting small compare chains for switches order them by using edge weights.
SimplifyCFG tends to form a lot of 2-3 case switches when merging branches. Move the most likel
SelectionDAGBuilder: When emitting small compare chains for switches order them by using edge weights.
SimplifyCFG tends to form a lot of 2-3 case switches when merging branches. Move the most likely condition to the front so it is checked first and the others can be skipped. This is currently not as effective as it could be because SimplifyCFG destroys profiling metadata when merging branches and switches. Merging branch weight metadata is tricky though.
This code touches at most 3 cases so I didn't use a proper sorting algorithm.
llvm-svn: 157521
show more ...
|
#
aa58397b |
| 25-May-2012 |
Justin Holewinski <jholewinski@nvidia.com> |
Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall to pass around a struct instead of a large set of individual values. This cleans up the interface and allows more infor
Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall to pass around a struct instead of a large set of individual values. This cleans up the interface and allows more information to be added to the struct for future targets without requiring changes to each and every target.
NV_CONTRIB
llvm-svn: 157479
show more ...
|
#
315a0c79 |
| 25-May-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify code for calling a function where CanLowerReturn fails, fixing a small bug in the process.
llvm-svn: 157446
|
#
b638ee0e |
| 18-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Recommited reworked r156804: SelectionDAGBuilder::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced.
llvm-svn: 157046
|
#
96d0c925 |
| 17-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
SelectionDAGBuilder: CaseBlock, CaseRanges and CaseCmp changed representation of Low and High from signed to unsigned. Since unsigned ints usually simpler, faster and allows to reduce some extra sign
SelectionDAGBuilder: CaseBlock, CaseRanges and CaseCmp changed representation of Low and High from signed to unsigned. Since unsigned ints usually simpler, faster and allows to reduce some extra signed bit checks needed before <,>,<=,>= comparisons.
llvm-svn: 156985
show more ...
|
#
e01e9863 |
| 15-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Rejected r156804 due to buildbots failures.
llvm-svn: 156808
|
#
d450d3fa |
| 15-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
SelectionDAGBuilder::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced.
llvm-svn: 156804
|
#
164fe18c |
| 14-May-2012 |
Dan Gohman <gohman@apple.com> |
Rename @llvm.debugger to @llvm.debugtrap.
llvm-svn: 156774
|
Revision tags: llvmorg-3.1.0 |
|
#
dfab443a |
| 11-May-2012 |
Dan Gohman <gohman@apple.com> |
Define a new intrinsic, @llvm.debugger. It will be similar to __builtin_trap(), but it generates int3 on x86 instead of ud2.
llvm-svn: 156593
|
Revision tags: llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2 |
|
#
b6b50c66 |
| 01-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Strip the pointer casts off of allocas so that the selection DAG can find them. PR10799
llvm-svn: 155954
|
Revision tags: llvmorg-3.1.0-rc1 |
|
#
692d5849 |
| 11-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix an overly indented line. Remove an 'else' after an 'if' that returns.
llvm-svn: 154479
|
#
bc680061 |
| 11-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Inline implVisitAluOverflow by introducing a nested switch to convert the intrinsic to an nodetype.
llvm-svn: 154478
|
#
3ef01cdb |
| 11-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Optimize code a bit by calling push_back only once in some loops. Reduces compiled code size a bit.
llvm-svn: 154473
|
#
6148fe65 |
| 08-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Optimize code a bit. No functional change intended.
llvm-svn: 154299
|
#
c8e2d91a |
| 08-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Simplify code that tries to do vector extracts for shuffles when the mask width and the input vector widths don't match. No need to check the min and max are in range before calculating the start ind
Simplify code that tries to do vector extracts for shuffles when the mask width and the input vector widths don't match. No need to check the min and max are in range before calculating the start index. The range check after having the start index is sufficient. Also no need to check for an extract from the beginning differently.
llvm-svn: 154295
show more ...
|