- Nov 02, 2011
-
-
Chandler Carruth authored
silence -Wparentheses. llvm-svn: 143534
-
Andrew Trick authored
Narrowest possible fix for PR11279. llvm-svn: 143522
-
- Nov 01, 2011
-
-
Eli Friedman authored
Make sure we use the right insertion point when instcombine replaces a PHI with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275. llvm-svn: 143437
-
Devang Patel authored
Patch by Kostya Serebryany. llvm-svn: 143405
-
- Oct 29, 2011
-
-
Benjamin Kramer authored
SimplifyLibCalls: Use IRBuilder.CreateGlobalString when creating a string for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable. Fixes PR11264. llvm-svn: 143289
-
- Oct 28, 2011
-
-
Andrew Trick authored
Fixes rdar://10359193 Indvar LinearFunctionTestReplace assertion llvm-svn: 143183
-
- Oct 27, 2011
-
-
Eli Friedman authored
It is not safe to sink an alloca into a stacksave/stackrestore pair, so don't do that. <rdar://problem/10352360> llvm-svn: 143093
-
- Oct 24, 2011
-
-
Nick Lewycky authored
instructions. This doesn't introduce any optimizations we weren't doing before (except potentially due to pass ordering issues), now passes will eliminate them sooner as part of their own cleanups. llvm-svn: 142787
-
- Oct 23, 2011
-
-
Cameron Zwarich authored
element types, even though the element extraction code does. It is surprising that this bug has been here for so long. Fixes <rdar://problem/10318778>. llvm-svn: 142740
-
- Oct 22, 2011
-
-
Nick Lewycky authored
elimination on them too. llvm-svn: 142735
-
- Oct 21, 2011
-
-
Eli Friedman authored
llvm-svn: 142684
-
Eli Friedman authored
llvm-svn: 142672
-
Eli Friedman authored
Extend instcombine's shufflevector simplification to handle more cases where the input and output vectors have different sizes. Patch by Xiaoyi Guo. llvm-svn: 142671
-
- Oct 20, 2011
-
-
Eli Friedman authored
Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180. llvm-svn: 142572
-
Devang Patel authored
Patch by Pranav Bhandarkar! llvm-svn: 142556
-
- Oct 18, 2011
-
-
Dan Gohman authored
tag on objc_retainBlock calls, which indicates that they may be optimized away. rdar://10211286. llvm-svn: 142298
-
- Oct 17, 2011
-
-
Bill Wendling authored
combining of the landingpad instruction. The ObjC personality function acts almost identically to the C++ personality function. In particular, it uses "null" as a "catch-all" value. llvm-svn: 142256
-
Dan Gohman authored
possibility that it will span multiple CFG diamonds/triangles which could have different controlling predicates. rdar://10282956 llvm-svn: 142222
-
Bill Wendling authored
Some code want to check that *any* call within a function has the 'returns twice' attribute, not just that the current function has one. llvm-svn: 142221
-
Bill Wendling authored
obsolete. Check the attribute instead. <rdar://problem/8031714> llvm-svn: 142212
-
Michael J. Spencer authored
llvm-svn: 142204
-
Devang Patel authored
There is no reason to have simple IR level pass in lib/Target. llvm-svn: 142200
-
Chandler Carruth authored
profile metadata at the same time. Use it to preserve metadata attached to a branch when re-writing it in InstCombine. Add metadata to the canonicalize_branch InstCombine test, and check that it is tranformed correctly. Reviewed by Nick Lewycky! llvm-svn: 142168
-
Chandler Carruth authored
llvm-svn: 142162
-
- Oct 16, 2011
-
-
Nick Lewycky authored
on the memcpy call will pull up other unrelated stuff. Fixes PR11142. llvm-svn: 142150
-
- Oct 15, 2011
-
-
Duncan Sands authored
use can't be dominated, saving one domtree lookup. llvm-svn: 142066
-
Andrew Trick authored
I rewrote the algorithm a while back so it doesn't require map lookup, but neglected to change the data structure. This was caught by llvm-gcc self host, not because there's anything special about llvm-gcc, but because it is the only test for nondeterminism we currently have. Unit tests don't work well for everything; we should always try to have a nondeterminism stress test running. Fixes PR11133: llvm-gcc self host .o mismatch after enable-iv-rewrite=false llvm-svn: 142036
-
- Oct 14, 2011
-
-
Eli Friedman authored
Someone more familiar with LSR should double-check that the extra cast is actually doing the right thing in the overflow cases; I'm not completely confident that's that case. llvm-svn: 141916
-
Eli Friedman authored
Enhance the memdep interface so that users can tell the difference between a dependency which cannot be calculated and a path reaching the entry point of the function. This patch introduces isNonFuncLocal, which replaces isUnknown in some cases. Patch by Xiaoyi Guo. llvm-svn: 141896
-
- Oct 13, 2011
-
-
Eli Friedman authored
Fix a couple hash functions so that they do not depend on undefined shifts. Based on patch by Ahmed Charles. llvm-svn: 141820
-
- Oct 12, 2011
-
-
Nick Lewycky authored
llvm-svn: 141750
-
- Oct 11, 2011
-
-
Cameron Zwarich authored
would have never worked, since the element type of a vector type is never a vector type. Also fix the conditional to be more direct in checking whether EltTy is a vector type. llvm-svn: 141713
-
Cameron Zwarich authored
lowering of NEON code. It provides little-to-no benefit now and only introduces additional complexity. llvm-svn: 141646
-
Andrew Trick authored
I'm not sure we will need it in the long run, but the option is currently useful for checking if the output of LSR is "clean". llvm-svn: 141634
-
Andrew Trick authored
IVs. Indvars previously chose randomly between congruent IVs. Now it will bias the decision toward IVs that SCEVExpander likes to create. This was not done to fix any problem, it's just a welcome side effect of factoring code. llvm-svn: 141633
-
Lang Hames authored
promoting allocas to preferred alignments that exceed the natural alignment. This avoids some potentially expensive dynamic stack realignments. The natural stack alignment is set in target data strings via the "S<size>" option. Size is in bits and must be a multiple of 8. The natural stack alignment defaults to "unspecified" (represented by a zero value), and the "unspecified" value does not prevent any alignment promotions. Target maintainers that care about avoiding promotions should explicitly add the "S<size>" option to their target data strings. llvm-svn: 141599
-
- Oct 08, 2011
-
-
Andrew Trick authored
Fixes rdar://problem/5064068 llvm-svn: 141442
-
- Oct 07, 2011
-
-
Duncan Sands authored
switch (n) { case 27: do_something(x); ... } the call do_something(x) will be replaced with do_something(27). In gcc-as-one-big-file this results in the removal of about 500 lines of bitcode (about 0.02%), so has about 1/10 of the effect of propagating branch conditions. llvm-svn: 141360
-
Eli Friedman authored
llvm-svn: 141333
-
- Oct 06, 2011
-
-
Eli Friedman authored
While I'm here, fix the related issue with strncmp, add some actual tests for strcmp and strncmp, and start using StringRef::compare for constant folding instead of using strcmp/strncmp so that the optimized IR isn't dependent on the host's implementation of strcmp. llvm-svn: 141227
-