- 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
-
Nick Lewycky authored
patch back in r94322. llvm-svn: 100097
-
- Mar 31, 2010
-
-
Bob Wilson authored
PHIs. The previous algorithm was unable to reliably detect when existing PHIs in a cycle can be reused. I'm still working on reducing a testcase. Radar 7711900. llvm-svn: 100047
-
Dale Johannesen authored
generate wrong code pretty much anywhere AFAICT. A case that hits the bug reproducibly is impossible, but the situation was like this: Addr = ... Store -> Addr Addr2 = GEP , 0, 0 Store -> Addr2 Handling the first store, the code changed replaced Addr with a sunkaddr and deleted Addr, but not its table entry. Code in OptimizedBlock replaced Addr2 with a bitcast; if that happened to reuse the memory of Addr, the old table entry was erroneously found when handling the second store. llvm-svn: 100044
-
Bob Wilson authored
llvm-svn: 99948
-
- Mar 30, 2010
-
-
Mon P Wang authored
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
-
Dan Gohman authored
llvm-svn: 99917
-
Gabor Greif authored
spotted by baldrick -- thanks\! llvm-svn: 99914
-
- Mar 27, 2010
-
-
Jeffrey Yasskin authored
pointer. There was also a SmallPtrSet whose settiness wasn't being used, so I changed it to a SmallVector. llvm-svn: 99713
-
Jeffrey Yasskin authored
llvm-svn: 99711
-