- Dec 05, 2010
-
-
Frits van Bommel authored
llvm-svn: 120945
-
- Oct 19, 2010
-
-
Owen Anderson authored
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820
-
- Oct 12, 2010
-
-
Owen Anderson authored
perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334
-
- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Sep 29, 2010
-
-
Owen Anderson authored
Fix PR8247: JumpThreading can cause a block to become unreachable while still having predecessor, if it is part of a self-loop. Because of this, we cannot use the Simplify* APIs, as they can assert-fail on unreachable code. Since it's not easy to determine if a given threading will cause a block to become unreachable, simply defer simplifying simplification to later InstCombine and/or DCE passes. llvm-svn: 115082
-
- Sep 14, 2010
-
-
Owen Anderson authored
on by default and has received significant testing. llvm-svn: 113852
-
- Sep 05, 2010
-
-
Chris Lattner authored
llvm-svn: 113114
-
Chris Lattner authored
llvm-svn: 113113
-
- Sep 02, 2010
-
-
Duncan Sands authored
I'm sure it is harmless. Original commit message: If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. llvm-svn: 112810
-
- Sep 01, 2010
-
-
Owen Anderson authored
if we schedule another LVI-using pass afterwards. llvm-svn: 112722
-
Eric Christopher authored
self host errors on clang-x86-64. llvm-svn: 112719
-
Duncan Sands authored
then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. llvm-svn: 112699
-
- Aug 31, 2010
-
-
Owen Anderson authored
More cleanups of my JumpThreading transforms, including extracting some duplicated code into a helper function. llvm-svn: 112634
-
Owen Anderson authored
llvm-svn: 112628
-
Owen Anderson authored
llvm-svn: 112620
-
Owen Anderson authored
More Chris-inspired JumpThreading fixes: use ConstantExpr to correctly constant-fold undef, and be more careful with its return value. This actually exposed an infinite recursion bug in ComputeValueKnownInPredecessors which theoretically already existed (in JumpThreading's handling of and/or of i1's), but never manifested before. This patch adds a tracking set to prevent this case. llvm-svn: 112589
-
Owen Anderson authored
Re-apply r112539, being more careful to respect the return values of the constant folding methods. Additionally, use the ConstantExpr::get*() methods to simplify some constant folding. llvm-svn: 112550
-
Owen Anderson authored
llvm-svn: 112543
-
Owen Anderson authored
Fixes and cleanups pointed out by Chris. In general, be careful to handle 0 results from ComputeValueKnownInPredecessors (indicating undef), and re-use existing constant folding APIs. llvm-svn: 112539
-
- Aug 27, 2010
-
-
Owen Anderson authored
llvm-svn: 112286
-
Owen Anderson authored
Use LVI to eliminate conditional branches where we've tested a related condition previously. Update tests for this change. This fixes PR5652. llvm-svn: 112270
-
- Aug 26, 2010
-
-
Owen Anderson authored
llvm-svn: 112198
-
- Aug 24, 2010
-
-
Owen Anderson authored
llvm-svn: 111923
-
- Aug 23, 2010
-
-
Owen Anderson authored
llvm-svn: 111834
-
Owen Anderson authored
llvm-svn: 111816
-
- Aug 19, 2010
-
-
Owen Anderson authored
llvm-svn: 111551
-
Owen Anderson authored
llvm-svn: 111543
-
- Aug 18, 2010
-
-
Owen Anderson authored
llvm-svn: 111382
-
Chris Lattner authored
from the LHS should disable reconsidering that pred on the RHS. However, knowing something about the pred on the RHS shouldn't disable subsequent additions on the RHS from happening. llvm-svn: 111349
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
Owen Anderson authored
llvm-svn: 110384
-
- Jul 26, 2010
-
-
Owen Anderson authored
llvm-svn: 109424
-
- Jul 22, 2010
-
-
Owen Anderson authored
llvm-svn: 109045
-
- Jul 12, 2010
-
-
Gabor Greif authored
llvm-svn: 108142
-
Chris Lattner authored
the LHS and RHS of an and/or instruction, don't multiply add known predecessor values. This fixes the crash on testcase from PR7498 llvm-svn: 108114
-
- Jun 14, 2010
-
-
Chris Lattner authored
fixes PR7356. llvm-svn: 105950
-
- May 28, 2010
-
-
Dan Gohman authored
lib/Transforms/Utils and into lib/Analysis so that Analysis passes can use them. llvm-svn: 104949
-
- Apr 10, 2010
-
-
Chris Lattner authored
in some cases. llvm-svn: 100937
-