Remove the "really gross hacks" that are there to deal with recursive functions.

Now we collect all of the call sites we are interested in inlining, then inline
them.  This entirely avoids issues with trying to inline a call site we got by
inlining another call site.  This also eliminates iterator invalidation issues.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12770 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2004-04-08 06:34:31 +00:00
parent 0c199a7628
commit 775cbdd51a
3 changed files with 59 additions and 88 deletions

View File

@@ -56,12 +56,6 @@ struct Inliner : public CallGraphSCCPass {
private:
// InlineThreshold - Cache the value here for easy access.
unsigned InlineThreshold;
// IsRecursiveFunction - This contains all functions which are directly
// recursive, which we do NOT want to inline into other functions.
std::set<Function*> IsRecursiveFunction;
bool performInlining(CallSite CS, std::set<Function*> &SCC);
};
} // End llvm namespace