- Apr 07, 2010
-
-
Gabor Greif authored
llvm-svn: 100677
-
- Apr 06, 2010
-
-
Gabor Greif authored
llvm-svn: 100550
-
Gabor Greif authored
llvm-svn: 100549
-
Gabor Greif authored
llvm-svn: 100547
-
Gabor Greif authored
llvm-svn: 100546
-
Gabor Greif authored
and remove assumptions about operand order llvm-svn: 100544
-
Chris Lattner authored
undefs in branches/switches, we have two cases: a branch on a literal undef or a branch on a symbolic value which is undef. If we have a literal undef, the code was correct: forcing it to a constant is the right thing to do. If we have a branch on a symbolic value that is undef, we should force the symbolic value to a constant, which then makes the successor block live. Forcing the condition of the branch to being a constant isn't safe if later paths become live and the value becomes overdefined. This is the case that 'forcedconstant' is designed to handle, so just use it. This fixes rdar://7765019 but there is no good testcase for this, the one I have is too insane to be useful in the future. llvm-svn: 100478
-
- Apr 05, 2010
-
-
Chris Lattner authored
llvm-svn: 100468
-
Evan Cheng authored
llvm-svn: 100467
-
- Apr 04, 2010
-
-
Mon P Wang authored
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
-
- Apr 03, 2010
-
-
Chris Lattner authored
exits the loop. With this information we can guarantee the iteration count of the loop is bounded by the compare. I think this xforms is finally safe now. llvm-svn: 100285
-
Chris Lattner authored
checker. Amusingly, we already had tests that we should have rejects because they would be miscompiled in the testsuite. The remaining issue with this is that we don't check that the branch causes us to exit the loop if it fails, so we don't actually know if we remain in bounds. llvm-svn: 100284
-
Chris Lattner authored
to a signed vs unsigned value depending on the sign of the constant fp means that we can't distinguish between a truly negative number and a positive number so large the 32nd bit is set. So, do don't this! llvm-svn: 100283
-
Chris Lattner authored
stuff. More bugs remain though. llvm-svn: 100282
-
Chris Lattner authored
the required validity checks in the first place, and supporting a condition large enough to require the 32'nd bit isn't worth it. llvm-svn: 100280
-
Chris Lattner authored
of llvm. llvm-svn: 100276
-
Chris Lattner authored
no uses, it would have been deleted by RecursivelyDeleteTriviallyDeadInstructions llvm-svn: 100275
-
Chris Lattner authored
llvm-svn: 100274
-
Chris Lattner authored
llvm-svn: 100273
-
Chris Lattner authored
llvm-svn: 100272
-
Chris Lattner authored
are in the same block. Insert the new increment in the correct location. Also, more cleanups. llvm-svn: 100271
-
Chris Lattner authored
this cleans up a bunch of code and also fixes several crashes and miscompiles. More to come unfortunately, this optimization is quite broken. llvm-svn: 100270
-
Chris Lattner authored
really just declarations. This is related to PR6524 llvm-svn: 100269
-
Bob Wilson authored
(what was I thinking?) and there's also a problem with LCSSA. I'll try again later with fixes. --- Reverse-merging r100263 into '.': U lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100177 into '.': G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100148 into '.': G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100147 into '.': U include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100131 into '.': G include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100130 into '.': G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100126 into '.': G include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100050 into '.': D test/Transforms/GVN/2010-03-31-RedundantPHIs.ll --- Reverse-merging r100047 into '.': G include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp llvm-svn: 100264
-
Bob Wilson authored
llvm-svn: 100263
-
Evan Cheng authored
llvm-svn: 100262
-
- Apr 02, 2010
-
-
Mon P Wang authored
llvm-svn: 100199
-
Mon P Wang authored
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100191
-
Dan Gohman authored
it can't currently observe such changes automatically. llvm-svn: 100186
-
Bob Wilson authored
llvm-svn: 100177
-
Dan Gohman authored
in particular, they end up aligning strings at 16-byte boundaries, and there's no way for GlobalOpt to check OptForSize. llvm-svn: 100172
-
Bob Wilson authored
llvm-svn: 100164
-
Dan Gohman authored
llvm-svn: 100160
-
Bob Wilson authored
This is more efficient than adding them to the worklist and then ignoring them. llvm-svn: 100158
-
Bob Wilson authored
llvm-svn: 100148
-
Bob Wilson authored
llvm-svn: 100147
-
- Apr 01, 2010
-
-
Bob Wilson authored
llvm-svn: 100131
-
Bob Wilson authored
one place. This removes the template function added in svn 94690. llvm-svn: 100130
-
Bob Wilson authored
blow out the stack for really big functions. Start by fixing an easy case. llvm-svn: 100126
-
Gabor Greif authored
is necessary. Inherits from new templated baseclass CallSiteBase<> which is highly customizable. Base CallSite on it too, in a configuration that allows full mutation. Adapt some call sites in analyses to employ ImmutableCallSite. llvm-svn: 100100
-