- Aug 13, 2011
-
-
Eli Friedman authored
of the instruction. Note that this change affects the existing non-atomic load and store instructions; the parser now accepts both forms, and the change is noted in the release notes. llvm-svn: 137527
-
- Aug 12, 2011
-
-
Dan Gohman authored
is returned through a bitcast. llvm-svn: 137402
-
Dan Gohman authored
the retains and releases all use the same SSA pointer value. Also, don't let CFG hazards disrupt nested retain+release pair optimizations. llvm-svn: 137399
-
Andrew Trick authored
checked in at r137276 and r137341. llvm-svn: 137385
-
Andrew Trick authored
SCEV unrolling can unroll loops with arbitrary induction variables. It is a prerequisite for -disable-iv-rewrite performance. It is also easily handles loops of arbitrary structure including multiple exits and is generally more robust. This is under a temporary option to avoid affecting default behavior for the next couple of weeks. It is needed so that I can checkin unit tests for updateUnloop. llvm-svn: 137384
-
- Aug 10, 2011
-
-
Andrew Trick authored
llvm-svn: 137203
-
Andrew Trick authored
These are not individual bug fixes. I had to rewrite a good chunk of the unroller to make it sane. I think it was getting lucky on trivial completely unrolled loops with no early exits. I included some fairly simple unit tests for partial unrolling. I didn't do much stress testing, so it may not be perfect, but should be usable now. llvm-svn: 137190
-
- Aug 09, 2011
-
-
Dan Gohman authored
llvm-svn: 137085
-
- Aug 06, 2011
-
-
Andrew Trick authored
recurrence, the initial values low bits can sometimes be ignored. To take advantage of this, added FoldIVUser to IndVarSimplify to fold an IV operand into a udiv/lshr if the operator doesn't affect the result. -indvars -disable-iv-rewrite now transforms i = phi i4 i1 = i0 + 1 idx = i1 >> (2 or more) i4 = i + 4 into i = phi i4 idx = i0 >> ... i4 = i + 4 llvm-svn: 137013
-
- Aug 04, 2011
-
-
Bill Wendling authored
This is some of my original LLVM code. *wipes tear* llvm-svn: 136821
-
- Aug 03, 2011
-
-
Andrew Trick authored
to notify SCEV of a change. Add forgetLoop in a couple of those places. llvm-svn: 136797
-
Chris Lattner authored
llvm-svn: 136768
-
Nick Lewycky authored
Don't replace a gep/bitcast with 'undef' because that will form a "free(undef)" which in turn means "unreachable". What we wanted was a no-op. Instead, analyze the whole tree and look for all the instructions we need to delete first, then delete them second, not relying on the use_list to stay consistent. llvm-svn: 136752
-
Nick Lewycky authored
malloc call. llvm-svn: 136732
-
- Aug 02, 2011
-
-
Nick Lewycky authored
llvm-svn: 136722
-
Benjamin Kramer authored
llvm-svn: 136675
-
Owen Anderson authored
Revert r136503 and r136480 in an effort to fix non-determinism in the llvm-gcc buildbots on i386. Devang is looking into the root cause. llvm-svn: 136674
-
- Jul 31, 2011
-
-
Rafael Espindola authored
llvm-svn: 136585
-
- Jul 29, 2011
-
-
Devang Patel authored
llvm-svn: 136480
-
Eli Friedman authored
Make sure to correctly clear the exact/nuw/nsw flags off of shifts when they are combined together. <rdar://problem/9859829> llvm-svn: 136435
-
- Jul 27, 2011
-
-
Nick Lewycky authored
llvm-svn: 136250
-
- Jul 26, 2011
-
-
Nick Lewycky authored
llvm-svn: 136008
-
- Jul 23, 2011
-
-
Dan Gohman authored
so that a declaration for objc_retain is created when needed if it doesn't already exist. rdar://9825114. llvm-svn: 135821
-
- Jul 22, 2011
-
-
Dan Gohman authored
size but different element types, so that it filters out the cases that CreateShuffleVectorCast doesn't handle. This fixes rdar://9786827. llvm-svn: 135721
-
- Jul 21, 2011
-
-
-
Andrew Trick authored
rdar://9786536 llvm-svn: 135650
-
Andrew Trick authored
rdar://9786536 llvm-svn: 135644
-
- Jul 20, 2011
-
-
Eli Friedman authored
llvm-svn: 135625
-
Andrew Trick authored
llvm-svn: 135568
-
Andrew Trick authored
llvm-svn: 135559
-
Andrew Trick authored
llvm-svn: 135558
-
Eli Friedman authored
llvm-svn: 135534
-
- Jul 19, 2011
-
-
Nick Lewycky authored
to perform a signed wrap. Don't rely on any particular handling of that case. llvm-svn: 135471
-
- Jul 18, 2011
-
-
Andrew Trick authored
For -disable-iv-rewrite, perform LFTR without generating a new "canonical" induction variable. Instead find the "best" existing induction variable for use in the loop exit test and compute the final value of that IV for use in the new loop exit test. In short, convert to a simple eq/ne exit test as long as it's cheap to do so. llvm-svn: 135420
-
- Jul 15, 2011
-
-
Chad Rosier authored
llvm-svn: 135299
-
Chad Rosier authored
llvm-svn: 135291
-
- Jul 13, 2011
-
-
Evan Cheng authored
llvm-svn: 135064
-
Evan Cheng authored
It's not safe to fold (fptrunc (sqrt (fpext x))) to (sqrtf x) if there is another use of sqrt. rdar://9763193 llvm-svn: 135058
-
- Jul 11, 2011
-
-
Rafael Espindola authored
more than one use. Fixes PR10322. llvm-svn: 134883
-
- Jul 09, 2011
-
-
Chris Lattner authored
patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
-