- Jun 15, 2011
-
-
Eli Friedman authored
Stop using memdep for a check that didn't really make sense with memdep. In terms of specific issues, using memdep here checks irrelevant instructions and won't work properly once we start returning "unknown" more aggressively from memdep. llvm-svn: 133035
-
Eli Friedman authored
Add "unknown" results for memdep, which mean "I don't know whether a dependence for the given instruction exists in the given block". This cleans up all the existing hacks in memdep which represent this concept by returning clobber with various unrelated instructions. llvm-svn: 133031
-
- Jun 14, 2011
-
-
Cameron Zwarich authored
llvm-svn: 132982
-
John McCall authored
line info correctly. llvm-svn: 132961
-
Nick Lewycky authored
llvm-svn: 132954
-
Cameron Zwarich authored
llvm-svn: 132952
-
- Jun 13, 2011
-
-
Cameron Zwarich authored
llvm-svn: 132940
-
Cameron Zwarich authored
llvm-svn: 132939
-
Cameron Zwarich authored
llvm-svn: 132938
-
Cameron Zwarich authored
spartan right now, but I plan to encode more information in this enum to improve the correctness and reliability of SRoA. At least this first pass makes it possible to make VectorTy an actual VectorType. llvm-svn: 132937
-
Cameron Zwarich authored
llvm-svn: 132936
-
Stuart Hastings authored
might overflow. Re-typing the alloca to a larger type (e.g. double) hoists a shift into the alloca, potentially exposing overflow in the expression. rdar://problem/9265821 llvm-svn: 132926
-
Benjamin Kramer authored
The backend already knew this trick. llvm-svn: 132915
-
Nick Lewycky authored
intrinsics. In fact, we'll optimize a bitcast to that when possible. Detect it when looking for the lifetime intrinsics. No test case, noticed by inspection. llvm-svn: 132906
-
Benjamin Kramer authored
InstCombine: Shrink ((zext X) & C1) == C2 to fold away the cast if the "zext" and the "and" have one use. llvm-svn: 132897
-
Benjamin Kramer authored
llvm-svn: 132896
-
- Jun 09, 2011
-
-
John McCall authored
llvm-svn: 132803
-
John McCall authored
pad, separating the exception and selector calls from the new lpad. Teaching it not to do that, or to properly adjust the CFG afterwards, is out of scope because it would require the other edges to the landing pad to be split as well (effectively). Instead, just recover from the most likely cases during inlining. The best long-term solution is to change the exception representation and commit to either requiring or not requiring the more complex edge-splitting logic; this is just a shorter-term hack. llvm-svn: 132799
-
John McCall authored
llvm-svn: 132797
-
Rafael Espindola authored
llvm-svn: 132775
-
Cameron Zwarich authored
llvm-svn: 132767
-
Cameron Zwarich authored
assuming that all offsets are legal vector accesses, and thus trying to access the float member of { <2 x float>, float } as the 3rd element of the first member. llvm-svn: 132766
-
Cameron Zwarich authored
former was using the size of the entire alloca, whereas the latter was correctly using the allocated size of the immediate type being converted (which may differ from the size of the alloca). This fixes PR10082. llvm-svn: 132759
-
- Jun 04, 2011
-
-
Bill Wendling authored
then we don't want to set the destination in the indirect branch to the destination. This is because the indirect branch needs its destinations to have had their block addresses taken. This isn't so of the new critical edge that's split during this process. If it turns out that the destination block has only one predecessor, and that being a BB with an indirect branch, then it won't be marked as 'used' and may be removed. PR10072 llvm-svn: 132638
-
- Jun 03, 2011
-
-
Devang Patel authored
llvm-svn: 132578
-
Nick Lewycky authored
which edge to split by pred/succ pair, which means that we can end up splitting the wrong edge (by case value) in the switch statement entirely. Fixes PR10031! llvm-svn: 132535
-
Devang Patel authored
llvm-svn: 132505
-
- Jun 02, 2011
-
-
Eli Friedman authored
PR10067: Add missing safety check to call return transformation in MemCpyOpt::processStore. If something accesses the dest of the "copy" between the call and the copy, the performCallSlotOptzn transformation is not valid. llvm-svn: 132485
-
- Jun 01, 2011
-
-
-
John McCall authored
landing pad, forward llvm.eh.resume calls to it instead of turning them invalidly into invokes. llvm-svn: 132382
-
- May 31, 2011
-
-
-
Stuart Hastings authored
sub with a non-constant. Fix comments, enlarge test case. rdar://problem/6501862 llvm-svn: 132348
-
- May 30, 2011
-
-
Stuart Hastings authored
rdar://problem/6501862 llvm-svn: 132316
-
- May 29, 2011
-
-
Nick Lewycky authored
llvm-svn: 132290
-
Nick Lewycky authored
variable. Noticed by inspection. Simulate memset in EvaluateFunction where the target of the memset and the value we're setting are both the null value. Fixes PR10047! llvm-svn: 132288
-
Nadav Rotem authored
llvm-svn: 132285
-
John McCall authored
fixes self-host. llvm-svn: 132275
-
- May 28, 2011
-
-
Benjamin Kramer authored
Fixes PR10040. llvm-svn: 132254
-
John McCall authored
transformed by the inliner into a branch to the enclosing landing pad (when inlined through an invoke). If not so optimized, it is lowered DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume as appropriate). Its chief advantage is that it takes both the exception value and the selector value as arguments, meaning that there is zero effort in recovering these; however, the frontend is required to pass these down, which is not actually particularly difficult. Also document the behavior of landing pads a bit better, and make it clearer that it's okay that personality functions don't always land at landing pads. This is just a fact of life. Don't write optimizations that rely on pushing things over an unwind edge. llvm-svn: 132253
-
- May 27, 2011
-
-
Nadav Rotem authored
code in one place. Re-apply 131534 and fix the multi-step promotion of integers. llvm-svn: 132217
-