aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/IPA
Commit message (Collapse)AuthorAgeFilesLines
* Fix bug: CBackend/2003-10-23-UnusedType.ll and hopefully 252.eonChris Lattner2003-10-231-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9441 91177308-0d34-0410-b5e6-96231b3b80d8
* This is a disgusting hack that improves code substantially, by makingChris Lattner2003-10-221-2/+122
| | | | | | | callgraphSCC passes more effective. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9384 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright notice to Makefiles.John Criswell2003-10-201-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9312 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-209-0/+63
| | | | | | | Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the Opcode enum for PHI nodes from "Instruction::PHINode" to ↵Chris Lattner2003-10-191-1/+1
| | | | | | "Instruction::PHI" to be more consistent with the other instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9269 91177308-0d34-0410-b5e6-96231b3b80d8
* Regularize header file commentsChris Lattner2003-10-132-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9071 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch from using CallInst's to represent call sites to using the LLVMChris Lattner2003-09-201-27/+24
| | | | | | | | CallSite class. Now we can represent function calls by invoke instructions too! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8629 91177308-0d34-0410-b5e6-96231b3b80d8
* These two conditions are not exclusive!!Chris Lattner2003-09-151-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8518 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the print output more usefulChris Lattner2003-09-151-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8517 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed spelling and grammar.Misha Brukman2003-09-112-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8478 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace M with F when refering to functionsChris Lattner2003-08-311-11/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8274 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename TarjanSCCIterator -> scc_iteratorChris Lattner2003-08-313-16/+16
| | | | | | | | | * Increases consistency with other iterators (e.g. df_iterator, po_iterator...) * It's shorter * We don't name classes by the implementation, we name it for the interface! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8273 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't explicitly use the SCC classChris Lattner2003-08-311-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8271 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead varChris Lattner2003-08-311-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8270 91177308-0d34-0410-b5e6-96231b3b80d8
* The SCC::HasLoop method is now in the main iteratorChris Lattner2003-08-312-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8269 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove explicit passing of SCC's around as objects.Chris Lattner2003-08-311-6/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8267 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the getAnalysisUsage method from the header fileChris Lattner2003-08-311-2/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8264 91177308-0d34-0410-b5e6-96231b3b80d8
* The tarjan iterator now returns a reference to the current SCC, not a ↵Chris Lattner2003-08-313-4/+4
| | | | | | possibly null pointer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8262 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanupsChris Lattner2003-08-311-14/+9
| | | | | | | Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8260 91177308-0d34-0410-b5e6-96231b3b80d8
* Indent classes correctly in the namespaceChris Lattner2003-08-311-46/+56
| | | | | | | | move bodies out-of-line Add getAnalysisUsage method for SFGSCC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8259 91177308-0d34-0410-b5e6-96231b3b80d8
* * CleanupsChris Lattner2003-08-311-38/+30
| | | | | | | * Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8258 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial checkin of the CallGraphSCCPass classChris Lattner2003-08-311-0/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8247 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary use of NonCopyableChris Lattner2003-08-061-5/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7641 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust for new DSGraph APIChris Lattner2003-06-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6993 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: CBackend/2003-05-31-MissingStructName.llChris Lattner2003-05-311-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6495 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate unnecessary ->get calls that are now automatically handled.Chris Lattner2003-05-291-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6397 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement optimization for direct function call case. This dramaticallyChris Lattner2003-02-051-2/+2
| | | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5495 91177308-0d34-0410-b5e6-96231b3b80d8
* Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner2003-02-011-3/+3
| | | | | | | This change provides a small (3%) but consistent speedup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5460 91177308-0d34-0410-b5e6-96231b3b80d8
* * Eliminate boolean arguments in favor of using enumsChris Lattner2003-01-231-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5420 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove #includesChris Lattner2002-12-121-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4968 91177308-0d34-0410-b5e6-96231b3b80d8
* Iterator that enumerates the ProgramDependenceGraph (PDG) for a function,Vikram S. Adve2002-12-081-0/+250
| | | | | | | i.e., enumerates all data and control dependences for the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4958 91177308-0d34-0410-b5e6-96231b3b80d8
* An explicit representation of dependence graphs, and a pass thatVikram S. Adve2002-12-082-0/+571
| | | | | | | | computes a dependence graph for data dependences on memory locations using interprocedural Mod/Ref information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4957 91177308-0d34-0410-b5e6-96231b3b80d8
* (1) Bug fix that was causing nodes with dangling references to be freed.Vikram S. Adve2002-11-271-77/+201
| | | | | | | | | | | We run removeDeadNodes() on the TD graph up front before using it. (2) Major enhancement to printing of results: now we list the actual objects that are mod/ref instead of just printing the bit vectors. Also an important bug fix in TDDataStructures pass (no change here): clear Mod/Ref bits of callers before inlining into a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4833 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bugChris Lattner2002-11-111-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4697 91177308-0d34-0410-b5e6-96231b3b80d8
* Reduce amount of work needed to compute ip/modrefChris Lattner2002-11-081-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4637 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix IPModRef to use new DS interfaceChris Lattner2002-11-081-8/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4628 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement ResolveCallSiteModRefInfo for IPModRef. computeModRef is not yet ↵Chris Lattner2002-11-071-4/+56
| | | | | | done though! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4602 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix problem with dangling referrersChris Lattner2002-11-071-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4595 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow the ResolveCallSiteModRefInfo method to return a mapping of nodes,Chris Lattner2002-11-061-6/+18
| | | | | | | implement the mod/ref bit masking git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4578 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a stub to implement the context sensitive mod/ref info for call sitesChris Lattner2002-11-061-12/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4577 91177308-0d34-0410-b5e6-96231b3b80d8
* Give a back pointer to the IPModRef object to the FunctionModRefInfo objectChris Lattner2002-11-061-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4576 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a couple of #includes, move some code from .h fileChris Lattner2002-11-061-8/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4575 91177308-0d34-0410-b5e6-96231b3b80d8
* An interprocedural analysis pass that computes flow-insensitiveVikram S. Adve2002-11-061-0/+218
| | | | | | | IP Mod and Ref information for every function and every call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4567 91177308-0d34-0410-b5e6-96231b3b80d8
* Simple passes that print out SCCs in the CFGs or in the CallGraph of a module.Vikram S. Adve2002-11-041-0/+93
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4532 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow the call graph to be called from analyze naturally with print implementedChris Lattner2002-11-041-6/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4517 91177308-0d34-0410-b5e6-96231b3b80d8
* Make users of FindUsedTypes not have problems with linkage. This fixesChris Lattner2002-09-241-0/+3
| | | | | | | Cwriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3900 91177308-0d34-0410-b5e6-96231b3b80d8
* - Do not expose ::ID from any of the analyses anymore.Chris Lattner2002-08-213-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3417 91177308-0d34-0410-b5e6-96231b3b80d8
* * Standardize how analysis results/passes as printed with the print() virtualChris Lattner2002-07-273-7/+5
| | | | | | | | | | | methods * Eliminate AnalysisID: Now it is just a typedef for const PassInfo* * Simplify how AnalysisID's are initialized * Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into the analyses themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3116 91177308-0d34-0410-b5e6-96231b3b80d8
* * Add support for different "PassType's"Chris Lattner2002-07-262-0/+4
| | | | | | | | | | | | | | | | * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3113 91177308-0d34-0410-b5e6-96231b3b80d8
* * Add support for different "PassType's"Chris Lattner2002-07-261-3/+2
| | | | | | | | | | | | | | | | * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3112 91177308-0d34-0410-b5e6-96231b3b80d8