- Mar 12, 2011
-
-
Jakob Stoklund Olesen authored
There are too many compatibility problems with using mixed types in std::upper_bound, and I don't want to spend 110 lines of boilerplate setting up a call to a 10-line function. Binary search is not /that/ hard to implement correctly. I tried terminating the binary search with a linear search, but that actually made the algorithm slower against my expectation. Most live intervals have less than 4 segments. The early test against endIndex() does pay, and this version is 25% faster than plain std::upper_bound(). llvm-svn: 127522
-
Eric Christopher authored
Go ahead and add them on when we might want to use them and let later passes remove them. Fixes rdar://9118569 llvm-svn: 127518
-
Jim Grosbach authored
llvm-svn: 127516
-
Jim Grosbach authored
actual instruction as the non-Darwin defs, but have different call-clobber semantics and so need separate patterns. They don't need to duplicate the encoding information, however. llvm-svn: 127515
-
Jim Grosbach authored
llvm-svn: 127511
-
Jim Grosbach authored
llvm-svn: 127510
-
Jim Grosbach authored
llvm-svn: 127509
-
Jim Grosbach authored
llvm-svn: 127506
-
Jim Grosbach authored
llvm-svn: 127505
-
- Mar 11, 2011
-
-
Jim Grosbach authored
effect that we get proper instruction printing using the "pop" mnemonic for it. llvm-svn: 127502
-
Cameron Zwarich authored
Optimize trivial branches in CodeGenPrepare, which often get created from the lowering of objectsize intrinsics. Unfortunately, a number of tests were relying on llc not optimizing trivial branches, so I had to add an option to allow them to continue to test what they originally tested. This fixes <rdar://problem/8785296> and <rdar://problem/9112893>. llvm-svn: 127498
-
Cameron Zwarich authored
protector insertion not working correctly with unreachable code. Since that revision was rolled out, this test doesn't actual fail before this fix. llvm-svn: 127497
-
Owen Anderson authored
llvm-svn: 127496
-
Jim Grosbach authored
as for VDUP32d and VDUP32q, respectively. llvm-svn: 127489
-
Jim Grosbach authored
and VDUPLN32d, respectively. llvm-svn: 127486
-
Jim Grosbach authored
as for VREV64d32 and VREV64q32, respectively. llvm-svn: 127485
-
Jim Grosbach authored
llvm-svn: 127483
-
Jim Grosbach authored
llvm-svn: 127482
-
Jan Sjödin authored
Remove optimization emitting a reference insted of label difference, since it can create more relocations. Removed isBaseAddressKnownZero method, because it is no longer used. llvm-svn: 127478
-
Daniel Dunbar authored
created from the", it broke some GCC test suite tests. llvm-svn: 127477
-
Jim Grosbach authored
llvm-svn: 127469
-
Andrew Trick authored
Replace -dag-chain-limit flag with constant. It has survived a release cycle without being touched, so no longer needs to pollute the hidden-help text. llvm-svn: 127468
-
Benjamin Kramer authored
ComputeMaskedBits: sub falls through to add, and sub doesn't have the same overflow semantics as add. Should fix the selfhost failures that started with r127463. llvm-svn: 127465
-
Benjamin Kramer authored
InstCombine: Fix a thinko where transform an icmp under the assumption that it's a zero comparison when it's not. Fixes PR9454. llvm-svn: 127464
-
Nick Lewycky authored
do with nuw here, but sub and mul should be given similar treatment. Fixes PR9343 #15! llvm-svn: 127463
-
John Wiegley authored
The existing CompEnd predicate does not define a strict weak order as required by the C++03 standard; therefore, its use as a predicate to std::upper_bound is invalid. For a discussion of this issue, see http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#270 This patch replaces the asymmetrical comparison with an iterator adaptor that achieves the same effect while being strictly standard-conforming by ensuring an apples-to-apples comparison. llvm-svn: 127462
-
Cameron Zwarich authored
lowering of objectsize intrinsics. Unfortunately, a number of tests were relying on llc not optimizing trivial branches, so I had to add an option to allow them to continue to test what they originally tested. This fixes <rdar://problem/8785296> and <rdar://problem/9112893>. llvm-svn: 127459
-
Chris Lattner authored
llvm-svn: 127453
-
Jim Grosbach authored
llvm-svn: 127442
-
Eric Christopher authored
corresponding testcases back to the previous versions. Fixes some performance regressions only seen on 32-bit. llvm-svn: 127441
-
Evan Cheng authored
Avoid replacing the value of a directly stored load with the stored value if the load is indexed. rdar://9117613. llvm-svn: 127440
-
Jim Grosbach authored
llvm-svn: 127434
-
- Mar 10, 2011
-
-
Dan Gohman authored
Value, not an Instruction, so casting is not necessary. Also, it's theoretically possible that the Value is not an Instruction, since WeakVH follows RAUWs. llvm-svn: 127427
-
Rafael Espindola authored
llvm-svn: 127426
-
Dan Gohman authored
after it has finished all of its reassociations, because its habit of unlinking operands and holding them in a datastructure while working means that it's not easy to determine when an instruction is really dead until after all its regular work is done. rdar://9096268. llvm-svn: 127424
-
Jim Grosbach authored
llvm-svn: 127423
-
Jim Grosbach authored
llvm-svn: 127422
-
Jim Grosbach authored
llvm-svn: 127420
-
Benjamin Kramer authored
This happens a lot in clang-compiled C++ code because it adds overflow checks to operator new[]: unsigned *foo(unsigned n) { return new unsigned[n]; } We can optimize away the overflow check on 64 bit targets because (uint64_t)n*4 cannot overflow. llvm-svn: 127418
-
Rafael Espindola authored
llvm-svn: 127417
-