- Mar 15, 2011
-
-
Bill Wendling authored
and then go kablooie. The problem was that it was tracking the PHI nodes anew each time into this function. But it didn't need to. And because the recursion didn't know that a PHINode was visited before, it would go ahead and call itself. There is a testcase, but unfortunately it's too big to add. This problem will go away with the EH rewrite. <rdar://problem/8856298> llvm-svn: 127640
-
- Oct 29, 2010
-
-
Bill Wendling authored
llvm-svn: 117643
-
- 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
-
- Sep 03, 2010
-
-
Duncan Sands authored
Original commit message: Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) llvm-svn: 112952
-
- Sep 01, 2010
-
-
Eric Christopher authored
self host errors on clang-x86-64. llvm-svn: 112719
-
Duncan Sands authored
landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) llvm-svn: 112702
-
- Aug 31, 2010
-
-
Duncan Sands authored
any more. I plan to reimplement alloca promotion using SSAUpdater later. It looks like Bill's URoR logic really always needs domtree, so the pass now always asks for domtree info. llvm-svn: 112597
-
- Aug 30, 2010
-
-
Chris Lattner authored
llvm-svn: 112459
-
- Aug 29, 2010
-
-
Chris Lattner authored
instead of PromoteMemToReg. This allows it to stop using DF and DT, eliminating a computation of DT and DF from clang -O3. Clang is now down to 2 runs of DomFrontier. llvm-svn: 112457
-
Chris Lattner authored
llvm-svn: 112455
-
- 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
-
- Jul 27, 2010
-
-
Bill Wendling authored
llvm-svn: 109462
-
- Jul 26, 2010
-
-
Dan Gohman authored
llvm-svn: 109402
-
- Jul 22, 2010
-
-
Gabor Greif authored
llvm-svn: 109103
-
- Jul 01, 2010
-
-
Bill Wendling authored
correct catch-all value. This saves having to iterate through all of the selectors in the program again. llvm-svn: 107345
-
- Jun 29, 2010
-
-
Duncan Sands authored
llvm-svn: 107141
-
Gabor Greif authored
llvm-svn: 107132
-
- Jun 28, 2010
-
-
Gabor Greif authored
llvm-svn: 107014
-
- Jun 25, 2010
-
-
Gabor Greif authored
and CallInst for getting hold of the intrinsic's arguments simplify along the way (at least for me this is much more legible now) Bill, Baldrick or Anton, please review\! llvm-svn: 106838
-
Gabor Greif authored
llvm-svn: 106837
-
- Jun 24, 2010
-
-
Bill Wendling authored
which don't have a catch-all associated with them not just clean-ups. This fixes the SingleSource/Benchmarks/Shootout-C++/except.cpp testcase that broke because of my change r105902. llvm-svn: 106772
-
- Jun 18, 2010
-
-
Dan Gohman authored
llvm-svn: 106279
-
- Jun 12, 2010
-
-
Bill Wendling authored
clean-up to a catch-all after inlining, take into account that there could be filter IDs as well. The presence of filters don't mean that the selector catches anything. It's just metadata information. llvm-svn: 105872
-
- Apr 19, 2010
-
-
Dan Gohman authored
than just getting one through a TargetLowering. llvm-svn: 101802
-
- Apr 17, 2010
-
-
Eric Christopher authored
Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
-
- Apr 16, 2010
-
-
Gabor Greif authored
with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
-
Gabor Greif authored
llvm-svn: 101434
-
- Apr 15, 2010
-
-
Gabor Greif authored
with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
-
Gabor Greif authored
llvm-svn: 101371
-
Gabor Greif authored
llvm-svn: 101368
-
Gabor Greif authored
of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
-
- Apr 02, 2010
-
-
Dale Johannesen authored
beginning of a block. llvm-svn: 100230
-
- Mar 30, 2010
-
-
Bill Wendling authored
catch-all. The "dominates" way won't catch all of the selectors which must be changed. llvm-svn: 99850
-
Bill Wendling authored
transform. I.e., if a clean-up eh.selector call dominates the invoke of an _Unwind_Resume_or_Rethrow, then we convert the eh.selector into a catch-all. This patch, however, uses the DominatorTree information, and doesn't go through the whole rigmarole of starting at the eh.exception call, finding the corresponding URoR and eh.selector calls, and trying to trace through any number of instruction types to get to them. llvm-svn: 99846
-
- Mar 27, 2010
-
-
Bill Wendling authored
llvm-svn: 99695
-
Bill Wendling authored
converted, then use the initializer, since using the name itself won't work. llvm-svn: 99692
-
Bill Wendling authored
'invoke' instruction. You will get a situation like this: bb: %ehptr = eh.exception() %sel = eh.selector(%ehptr, @per, 0); ... bb2: invoke _Unwind_Resume_or_Rethrow(%ehptr) %normal unwind to %lpad lpad: ... The unwinder will see the %sel call as a clean-up and, if it doesn't have a catch further up the call stack, it will skip running it. But there *is* another catch up the stack -- the catch for the %lpad. However, we can't see that. This is fixed in code-gen, where we detect this situation, and convert the "clean-up" selector call into a "catch-all" selector call. This gives us the correct semantics. llvm-svn: 99671
-
- Jan 21, 2010
-
-
Jim Grosbach authored
normalization needs to take this into account. llvm-svn: 94046
-