- May 01, 2010
-
-
Chris Lattner authored
that appear due to inlining a callee as candidates for futher inlining, but a recent patch made it do this if those call sites were indirect and became direct. Unfortunately, in bizarre cases (see testcase) doing this can cause us to infinitely inline mutually recursive functions into callers not in the cycle. Fix this by keeping track of the inline history from which callsite inline candidates got inlined from. This shouldn't affect any "real world" code, but is required for a follow on patch that is coming up next. llvm-svn: 102822
-
- Apr 30, 2010
-
-
Devang Patel authored
Radar 7927803 llvm-svn: 102760
-
- Apr 25, 2010
-
-
Chris Lattner authored
llvm-svn: 102296
-
- Apr 23, 2010
-
-
Chris Lattner authored
the worklist, making them inline candidates. llvm-svn: 102213
-
Chris Lattner authored
This fixes a bug where calls inlined into an invoke would get changed into an invoke but the array would keep pointing to the (now dead) call. The improved inliner behavior is still disabled for now. llvm-svn: 102196
-
Chris Lattner authored
llvm-svn: 102153
-
Chris Lattner authored
that appear in the SCC as a result of inlining as candidates for inlining. Change this so that it *does* consider call sites that change from being indirect to being direct as a result of inlining. This allows it to completely "devirtualize" the testcase. llvm-svn: 102146
-
Chris Lattner authored
arguments are handled with a new InlineFunctionInfo class. This makes it easier to extend InlineFunction to return more info in the future. llvm-svn: 102137
-
- Apr 20, 2010
-
-
Gabor Greif authored
llvm-svn: 101899
-
Chris Lattner authored
llvm-svn: 101846
-
rdar://7879828Chris Lattner authored
Arg promotion was deleting call graph nodes that still had references from the 'indirect' CGN. Like the inliner, it should only delete the function if all references are gone. llvm-svn: 101845
-
- 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
-
Chris Lattner authored
to CallGraphSCCPass's instead of passing around a std::vector<CallGraphNode*>. No functionality change, but now we have a much tidier interface. llvm-svn: 101558
-
- 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: 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
-
Tobias Grosser authored
The commit "Adding IPSCCP and Internalize passes to the C-bindings" introduced new dependencies for IPO. Add these to the CMAKE build as otherwise the BUILD_SHARED_LIBS=1 build fails. llvm-svn: 101313
-
- Apr 14, 2010
-
-
Evan Cheng authored
- TryToOptimizeStoreOfMallocToGlobal should check if TargetData is available and bail out if it is not. The transformations being done requires TD. llvm-svn: 101285
-
Nick Lewycky authored
have been removed in r101231. llvm-svn: 101232
-
Nick Lewycky authored
llvm-svn: 101231
-
Nick Lewycky authored
llvm-svn: 101223
-
Nick Lewycky authored
it can check whether the visible direct callers are passing in parameters to dead arguments and replace those with undef. This reinstates r94322 with bugs fixed. llvm-svn: 101213
-
- Apr 10, 2010
-
-
Chris Lattner authored
parameters in the CBE by implicitly adding a fixed argument. This allows eliminating a work-around from DAE. Patch by Sylvere Teissier! llvm-svn: 100944
-
Chris Lattner authored
llvm-svn: 100936
-
- Apr 09, 2010
-
-
Wesley Peck authored
llvm-svn: 100893
-
- Apr 07, 2010
-
-
Gabor Greif authored
llvm-svn: 100677
-
- Apr 06, 2010
-
-
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
-
- Apr 03, 2010
-
-
Chris Lattner authored
really just declarations. This is related to PR6524 llvm-svn: 100269
-
- Apr 02, 2010
-
-
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
-
Dan Gohman authored
llvm-svn: 100160
-
- Apr 01, 2010
-
-
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 27, 2010
-
-
Eric Christopher authored
of the previous load - it's usually important. For example, we don't want to blindly turn an unaligned load into an aligned one. llvm-svn: 99699
-
- Mar 24, 2010
-
-
Gabor Greif authored
I have audited all getOperandNo calls now, fixing hidden assumptions. CallSite related uglyness will be eliminated successively. Note this patch has a long and griveous history, for all the back-and-forths have a look at CallSite.h's log. llvm-svn: 99399
-
Gabor Greif authored
llvm-svn: 99398
-