summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/Local.cpp
Commit message (Collapse)AuthorAgeFilesLines
* For PR950:Reid Spencer2006-10-201-1/+1
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* Move some warnings to debug mode.Andrew Lenharth2006-10-131-3/+7
| | | | llvm-svn: 30933
* Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29921
* add some missing externalsAndrew Lenharth2006-06-281-3/+18
| | | | llvm-svn: 28955
* better c99 struct handlingAndrew Lenharth2006-04-251-2/+1
| | | | llvm-svn: 27970
* deal with memchrAndrew Lenharth2006-04-191-0/+7
| | | | llvm-svn: 27830
* stupid stuffAndrew Lenharth2006-04-191-3/+7
| | | | llvm-svn: 27821
* I understand now. Shoot.Andrew Lenharth2006-04-181-21/+3
| | | | llvm-svn: 27819
* llvm.memc* improvements. helps PA a lot in some specmarksAndrew Lenharth2006-04-181-2/+7
| | | | llvm-svn: 27812
* llvm.memc* improvements. helps PA a lot in some specmarksAndrew Lenharth2006-04-181-4/+11
| | | | llvm-svn: 27811
* Handle some kernel code than ends in [0 x sbyte]. I think this is safeAndrew Lenharth2006-04-131-2/+11
| | | | llvm-svn: 27672
* revert this, this is safe, if conservative. leave a note to that effectAndrew Lenharth2006-04-051-9/+7
| | | | llvm-svn: 27428
* no heap is happening hereAndrew Lenharth2006-03-151-1/+1
| | | | llvm-svn: 26781
* remove qsort for nowAndrew Lenharth2006-03-151-9/+0
| | | | llvm-svn: 26779
* improve mem intrinsics and add a few things povray usesAndrew Lenharth2006-03-151-3/+30
| | | | llvm-svn: 26774
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-031-3/+6
| | | | | | PR709, and paving the way for future progress. llvm-svn: 26476
* Add explicit #includes of <iostream>Chris Lattner2006-01-221-0/+1
| | | | llvm-svn: 25509
* Prefix DSA specific options with dsa.John Criswell2005-12-191-4/+4
| | | | | | Make the dsa-alloc-list and dsa-free-list options hidden. llvm-svn: 24864
* Added an option to specify the names of heap freeing functions.John Criswell2005-12-191-0/+20
| | | | llvm-svn: 24863
* Added a command line option that allows the user to specify a list ofJohn Criswell2005-12-191-0/+19
| | | | | | functions that allocate memory. llvm-svn: 24862
* Collapsing node if variable length struct with final field of length zeroSumant Kowshik2005-12-061-1/+18
| | | | llvm-svn: 24621
* core changes for varargsAndrew Lenharth2005-06-181-5/+1
| | | | llvm-svn: 22254
* Remove trailing whitespaceMisha Brukman2005-04-211-22/+22
| | | | llvm-svn: 21416
* Remove an iteration pass over the entire scalarmap for each function createdChris Lattner2005-03-221-15/+8
| | | | | | | by not allowing integer constants to get into the scalar map in the first place. llvm-svn: 20764
* Build EC's for globals twice. The first is after constructing the initialChris Lattner2005-03-201-23/+99
| | | | | | | | | Globals Graph for the local pass, the second is after all of the locals graphs have been constructed. This allows for many additional global EC's to be recognized that weren't before. This speeds up analysis of programs like 177.mesa, where it changes DSA from taking 0.712s to 0.4018s. llvm-svn: 20711
* some methods got renamedChris Lattner2005-03-201-2/+2
| | | | llvm-svn: 20703
* comment cleanupChris Lattner2005-03-201-1/+1
| | | | llvm-svn: 20699
* Create an equivalence class of global variables that DSA will never be ableChris Lattner2005-03-191-7/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | to tell apart anyway, and only track the leader for of these equivalence classes in our graphs. This dramatically reduces the number of GlobalValue*'s that appear in scalar maps, which A) reduces memory usage, by eliminating many many scalarmap entries and B) reduces time for operations that need to execute an operation for each global in the scalar map. As an example, this reduces the memory used to analyze 176.gcc from 1GB to 511MB, which (while it's still way too much) is better because it doesn't hit swap anymore. On eon, this shrinks the local graphs from 14MB to 6.8MB, shrinks the bu+td graphs of povray from 50M to 40M, shrinks the TD graphs of 130.li from 8.8M to 3.6M, etc. This change also speeds up DSA on large programs where this makes a big difference. For example, 130.li goes from 1.17s -> 0.56s, 134.perl goes from 2.14 -> 0.93s, povray goes from 15.63s->7.99s (!!!). This also apparently either fixes the problem that caused DSA to crash on perlbmk and gcc, or it hides it, because DSA now works on these. These both take entirely too much time in the TD pass (147s for perl, 538s for gcc, vs 7.67/5.9s in the bu pass for either one), but this is a known problem that I'll deal with later. llvm-svn: 20696
* another fastpathChris Lattner2005-03-181-1/+2
| | | | llvm-svn: 20674
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-2/+2
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* Make sure the two arguments of a setcc instruction point to the same node.Chris Lattner2005-03-051-1/+8
| | | | llvm-svn: 20462
* Trivial cleanup patchChris Lattner2005-03-041-2/+2
| | | | llvm-svn: 20436
* Handle null a bit more carefully.Chris Lattner2005-02-251-1/+11
| | | | | | | | Actually teach dsa about select instructions. This doesn't affect the graph in any way other than not setting a spurious U marker on pointer nodes that are selected. llvm-svn: 20324
* This instruction:Chris Lattner2005-02-241-1/+2
| | | | | | | | | X = gep null, ... Used to not create a scalar map entry for X, which caused clients to barf. This is bad. llvm-svn: 20316
* * Make some methods more const correct.Chris Lattner2005-01-301-2/+2
| | | | | | | | | | | | | | | | * Change the FunctionCalls and AuxFunctionCalls vectors into std::lists. This makes many operations on these lists much more natural, and avoids *exteremely* expensive copying of DSCallSites (e.g. moving nodes around between lists, erasing a node from not the end of the vector, etc). With a profile build of analyze, this speeds up BU DS from 25.14s to 12.59s on 176.gcc. I expect that it would help TD even more, but I don't have data for it. This effectively eliminates removeIdenticalCalls and children from the profile, going from 6.53 to 0.27s. llvm-svn: 19939
* Silence VC++ warnings.Chris Lattner2005-01-121-3/+4
| | | | llvm-svn: 19506
* Work correctly with ICC, Patch contributed by Bjørn WennbergChris Lattner2004-12-081-8/+16
| | | | llvm-svn: 18630
* Handle assert_fail specialChris Lattner2004-11-081-0/+7
| | | | llvm-svn: 17631
* Don't call Constant::getNullValue when the argument could be VoidTyChris Lattner2004-11-031-2/+3
| | | | llvm-svn: 17457
* Fix more undefined behaviorChris Lattner2004-10-301-10/+13
| | | | llvm-svn: 17356
* add support for UndefValueChris Lattner2004-10-261-1/+1
| | | | llvm-svn: 17260
* Add support for undefChris Lattner2004-10-161-0/+3
| | | | llvm-svn: 17055
* Dont' let null nodes sneak past cast instructionsChris Lattner2004-10-061-1/+4
| | | | llvm-svn: 16779
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-201-1/+1
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Changes For Bug 352Reid Spencer2004-09-011-3/+3
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Hide this optionChris Lattner2004-08-021-1/+1
| | | | llvm-svn: 15415
* These files don't need to include <iostream> since they include ↵Brian Gaeke2004-07-211-1/+0
| | | | | | "Support/Debug.h". llvm-svn: 15089
* bug 122:Reid Spencer2004-07-181-13/+8
| | | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14942
* Move all of the DSA headers into the Analysis/DataStructure subdir.Chris Lattner2004-07-071-2/+2
| | | | llvm-svn: 14663
* As much as I hate to say it, the whole setNode interface for DSNodeHandlesChris Lattner2004-07-071-2/+1
| | | | | | | | | | | | is HOPELESSLY broken. The problem is that the embedded getNode call can change the offset of the node handle in unpredictable ways. As it turns out, all of the clients of this method really want to set both the node and the offset, thus it is more efficient (and less buggy) to just do both of them in one method call. This fixes some obscure bugs handling non-forwarded node handles. llvm-svn: 14660
OpenPOWER on IntegriCloud