- Feb 14, 2010
-
-
Dan Gohman authored
llvm-svn: 96179
-
Dan Gohman authored
llvm-svn: 96178
-
Dan Gohman authored
with multiplication by constants distributed through, occasionally those subexpressions can include both x and -x. For now, if this condition is discovered within LSR, just prune such cases away, as they won't be profitable. This fixes a "zero allocated in a base register" assertion failure. llvm-svn: 96177
-
Dan Gohman authored
the no-TLI case. But it should still default to declining the transformation. llvm-svn: 96152
-
Dan Gohman authored
because profitability can't be sufficiently approximated. llvm-svn: 96148
-
John McCall authored
from opt. llvm-svn: 96135
-
Eric Christopher authored
odd offsets since the bitcasted pointer size and the offset pointer size are going to be different types for the GEP vs base object. llvm-svn: 96134
-
- Feb 13, 2010
-
-
Chris Lattner authored
llvm-svn: 96109
-
Chris Lattner authored
and add a doxygen comment. Cache the phi entry to avoid doing tons of PHINode::getBasicBlockIndex calls in the common case. On my insane testcase from re2c, this speeds up CGP from 617.4s to 7.9s (78x). llvm-svn: 96083
-
Chris Lattner authored
llvm-svn: 96081
-
Chris Lattner authored
to a PHI, avoid it in the common case where the BB occurs in the same index for multiple phis. This speeds up CGP on an insane testcase from 8.35 to 3.58s. llvm-svn: 96080
-
Chris Lattner authored
using pred_begin/end. It is much faster. llvm-svn: 96079
-
Chris Lattner authored
instead of with pred_begin/end. llvm-svn: 96078
-
Dan Gohman authored
deterministically sorted. llvm-svn: 96071
-
Jakob Stoklund Olesen authored
Functions explicitly marked inline will get an inlining threshold slightly more aggressive than the default for -O3. This means than -O3 builds are mostly unaffected while -Os builds will be a bit bigger and faster. The difference depends entirely on how many 'inline's are sprinkled on the source. In the CINT2006 suite, only these tests are significantly affected under -Os: Size Time 471.omnetpp +1.63% -1.85% 473.astar +4.01% -6.02% 483.xalancbmk +4.60% 0.00% Note that 483.xalancbmk runs too quickly to give useful timing results. llvm-svn: 96066
-
- Feb 12, 2010
-
-
Dan Gohman authored
llvm-svn: 96005
-
Dan Gohman authored
offset distributions it doesn't expect. llvm-svn: 96002
-
Chris Lattner authored
2. don't bother trying to merge globals in non-default sections, doing so is quite dubious at best anyway. 3. fix a bug reported by Arnaud de Grandmaison where we'd try to merge two globals in different address spaces. llvm-svn: 95995
-
Daniel Dunbar authored
is breaking llvm-gcc bootstrap. llvm-svn: 95988
-
Dan Gohman authored
doesn't matter, except that ScalarEvolution tends to need less time to fold the results this way. llvm-svn: 95979
-
Dan Gohman authored
bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. llvm-svn: 95975
-
- Feb 11, 2010
-
-
Eric Christopher authored
symbols. Thanks to Duncan Sands for the testcase! llvm-svn: 95877
-
Chris Lattner authored
what it does. Enhance it to return false to optimizing vector sign extensions from vector comparisions, which is the idiom used to get a splatted vector for a vector comparison. Doing this breaks vector-casts.ll, add some compensating transformations to handle the important case they cover without depending on this canonicalization. This fixes rdar://7434900 a serious pessimization of vector compares. llvm-svn: 95855
-
Chris Lattner authored
block. Other blocks may have pointer cycles that will crash basicaa and other alias analyses. In any case, there is no point wasting cycles optimizing dead blocks. This fixes rdar://7635088 llvm-svn: 95852
-
Chris Lattner authored
instead of considering x|undef -> x, which may not be true. llvm-svn: 95850
-
Eric Christopher authored
Update testcase accordingly now that we can optimize another section. llvm-svn: 95846
-
Devang Patel authored
llvm-svn: 95828
-
- Feb 10, 2010
-
-
Devang Patel authored
llvm-svn: 95807
-
Dan Gohman authored
llvm-svn: 95781
-
- Feb 09, 2010
-
-
Eric Christopher authored
enable constant 0 offset lowering. llvm-svn: 95691
-
Eric Christopher authored
consuming for a simple optimization. llvm-svn: 95671
-
Chris Lattner authored
llvm-svn: 95643
-
Chris Lattner authored
xform. llvm-svn: 95642
-
Eric Christopher authored
llvm-svn: 95641
-
Eric Christopher authored
Initial skeleton and SCEVUnknown lowering implemented, the rest should come relatively quickly. Move testcase to new directory. Move pass to right before SimplifyLibCalls - which is moved down a bit so we can take advantage of a few opts. llvm-svn: 95628
-
Chris Lattner authored
llvm-svn: 95616
-
- Feb 06, 2010
-
-
Jakob Stoklund Olesen authored
This time it's for real! I am going to hook this up in the frontends as well. The inliner has some experimental heuristics for dealing with the inline hint. When given a -respect-inlinehint option, functions marked with the inline keyword are given a threshold just above the default for -O3. We need some experiments to determine if that is the right thing to do. llvm-svn: 95466
-
Jakob Stoklund Olesen authored
llvm-svn: 95454
-
- Feb 05, 2010
-
-
Jakob Stoklund Olesen authored
Weird code sometimes uses pointer constants other than null. This patch teaches SimplifyCFG to build switch instructions in those cases. Code like this: void f(const char *x) { if (!x) puts("null"); else if ((uintptr_t)x == 1) puts("one"); else if (x == (char*)2 || x == (char*)3) puts("two"); else if ((intptr_t)x == 4) puts("four"); else puts(x); } Now becomes a switch: define void @f(i8* %x) nounwind ssp { entry: %magicptr23 = ptrtoint i8* %x to i64 ; <i64> [#uses=1] switch i64 %magicptr23, label %if.else16 [ i64 0, label %if.then i64 1, label %if.then2 i64 2, label %if.then9 i64 3, label %if.then9 i64 4, label %if.then14 ] Note that LLVM's own DenseMap uses magic pointers. llvm-svn: 95439
-
Chris Lattner authored
xform it is checking to actually pass. There is no need to match m_SelectCst<0, -1> since instcombine canonicalizes that into not(sext). Add matches for sext(not(x)) in addition to not(sext(x)). llvm-svn: 95420
-