| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | This nutty patch has been in my tree since before 1.3 went out, and it needs | Chris Lattner | 2004-10-12 | 1 | -20/+147 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to go in. This patch allows us to compute the trip count of loops controlled by values loaded from constant arrays. The cannonnical example of this is strlen when passed a constant argument: for (int i = 0; "constantstring"[i]; ++i) ; return i; In this case, it will compute that the loop executes 14 times, which means that the exit value of i is 14. Because of this, the loop gets DCE'd and we are happy. This also applies to anything that does similar things, e.g. loops like this: const float Array[] = { 0.1, 2.1, 3.2, 23.21 }; for (int i = 0; Array[i] < 20; ++i) and is actually fairly general. The problem with this is that it almost never triggers. The reason is that we run indvars and the loop optimizer only at compile time, which is before things like strlen and strcpy have been inlined into the program from libc. Because of this, it almost never is used (it triggers twice in specint2k). I'm committing it because it DOES work, may be useful in the future, and doesn't slow us down at all. If/when we start running the loop optimizer at link-time (-O4?) this will be very nice indeed :) llvm-svn: 16926 | |||||
| * | Fix SingleSource/Benchmarks/McGill/chomp | Chris Lattner | 2004-10-11 | 1 | -0/+1 | |
| | | | | | llvm-svn: 16912 | |||||
| * | Build both archive and relinked objects | Reid Spencer | 2004-10-10 | 3 | -3/+17 | |
| | | | | | llvm-svn: 16892 | |||||
| * | Initial version of automake Makefile.am file. | Reid Spencer | 2004-10-10 | 3 | -0/+86 | |
| | | | | | llvm-svn: 16885 | |||||
| * | Fix a nasty dangling pointer problem, due to a free'd pointer being left in | Chris Lattner | 2004-10-07 | 1 | -0/+3 | |
| | | | | | | | | a map. This caused problems if a later object happened to be allocated at the free'd object's address. llvm-svn: 16813 | |||||
| * | Dont' let null nodes sneak past cast instructions | Chris Lattner | 2004-10-06 | 1 | -1/+4 | |
| | | | | | llvm-svn: 16779 | |||||
| * | 'Pass' should now not be derived from by clients. Instead, they should derive | Chris Lattner | 2004-09-20 | 21 | -35/+35 | |
| | | | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436 | |||||
| * | Finegrainify namespacification | Chris Lattner | 2004-09-20 | 1 | -7/+4 | |
| | | | | | | | | | 'Pass' should now not be derived from by clients. Instead, they should derive from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16434 | |||||
| * | Fix a nasty iterator invalidation problem I introduced yesterday. This | Chris Lattner | 2004-09-19 | 1 | -5/+5 | |
| | | | | | | | | unfortunately is the cause of a bunch of failures from tonight, and the reason the tester is running so slow :( llvm-svn: 16407 | |||||
| * | Add CallGraphNode::removeAnyCallEdgeTo method | Chris Lattner | 2004-09-18 | 1 | -0/+12 | |
| | | | | | llvm-svn: 16398 | |||||
| * | When changing a function, make sure to update the CallGraphNode for the | Chris Lattner | 2004-09-18 | 1 | -0/+1 | |
| | | | | | | | function, not just the CallGraph. llvm-svn: 16388 | |||||
| * | Implement new changeFunction method, nuke a never implemented one. | Chris Lattner | 2004-09-18 | 1 | -8/+14 | |
| | | | | | llvm-svn: 16386 | |||||
| * | Convert code to compile with vc7.1. | Reid Spencer | 2004-09-15 | 1 | -3/+3 | |
| | | | | | | | Patch contributed by Paolo Invernizzi. Thanks Paolo! llvm-svn: 16368 | |||||
| * | Add some assertions | Chris Lattner | 2004-09-15 | 1 | -2/+3 | |
| | | | | | llvm-svn: 16366 | |||||
| * | Implement an AliasSetTracker::copyValue method | Chris Lattner | 2004-09-14 | 1 | -3/+30 | |
| | | | | | llvm-svn: 16344 | |||||
| * | Fixes to make LLVM compile with vc7.1. | Alkis Evlogimenos | 2004-09-03 | 5 | -2/+6 | |
| | | | | | | | Patch contributed by Paolo Invernizzi! llvm-svn: 16152 | |||||
| * | Changes For Bug 352 | Reid Spencer | 2004-09-01 | 31 | -60/+60 | |
| | | | | | | | | | 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 | |||||
| * | Fix a bug that caused the pass to go into infinite loops on trivial testcases. | Chris Lattner | 2004-08-16 | 1 | -1/+2 | |
| | | | | | | | This is fallout of the Bug 122 changes. llvm-svn: 15811 | |||||
| * | Add standard print/dump methods to CallGraph classes. | Chris Lattner | 2004-08-08 | 1 | -16/+22 | |
| | | | | | llvm-svn: 15569 | |||||
| * | Hide this option | Chris Lattner | 2004-08-02 | 1 | -1/+1 | |
| | | | | | llvm-svn: 15415 | |||||
| * | Fix #includes of i*.h => Instructions.h as per PR403. | Misha Brukman | 2004-07-29 | 8 | -13/+8 | |
| | | | | | llvm-svn: 15334 | |||||
| * | Fix #includes of i*.h => Instructions.h as per PR403. | Misha Brukman | 2004-07-29 | 3 | -8/+4 | |
| | | | | | llvm-svn: 15328 | |||||
| * | Merge i*.h headers into Instructions.h as part of bug403. | Alkis Evlogimenos | 2004-07-29 | 1 | -2/+1 | |
| | | | | | llvm-svn: 15325 | |||||
| * | Fix test/Regression/Analysis/BasicAA/2004-07-28-MustAliasbug.llx | Chris Lattner | 2004-07-29 | 1 | -5/+9 | |
| | | | | | | | | This also fixes the miscompilation of MallocBench/gs with dead store elimination enabled. llvm-svn: 15324 | |||||
| * | Make the create...() functions for some of these passes return a FunctionPass *. | Brian Gaeke | 2004-07-27 | 1 | -1/+1 | |
| | | | | | llvm-svn: 15276 | |||||
| * | nuke pointless -debug output | Chris Lattner | 2004-07-27 | 1 | -4/+0 | |
| | | | | | llvm-svn: 15267 | |||||
| * | Fix conservative assumption, which was quite broken. Also, notice that | Chris Lattner | 2004-07-27 | 1 | -2/+22 | |
| | | | | | | | functions known to not access memory (like sin/cos) don't access memory! :) llvm-svn: 15264 | |||||
| * | Remove a bogus assertion | Chris Lattner | 2004-07-27 | 1 | -3/+0 | |
| | | | | | llvm-svn: 15261 | |||||
| * | Complete rewrite of this pass to be faster, use less memory, be easier to | Chris Lattner | 2004-07-27 | 1 | -97/+148 | |
| | | | | | | | | understand, and more accurate to boot! This implements GlobalModRef/purecse.ll over the previous impl. llvm-svn: 15260 | |||||
| * | Use context-sensitive alias analysis to avoid pessimization in clients of | Chris Lattner | 2004-07-27 | 1 | -5/+23 | |
| | | | | | | | | AliasSetTracker (dse and licm). This implements DeadStoreElimination/context-sensitive.llx llvm-svn: 15254 | |||||
| * | Make basicaa a bit more aggressive | Chris Lattner | 2004-07-27 | 1 | -0/+4 | |
| | | | | | llvm-svn: 15252 | |||||
| * | basic-aa can actually provide simple mod/ref info | Chris Lattner | 2004-07-27 | 1 | -3/+3 | |
| | | | | | llvm-svn: 15251 | |||||
| * | This was implemented back in march | Chris Lattner | 2004-07-27 | 1 | -7/+0 | |
| | | | | | llvm-svn: 15250 | |||||
| * | Add some new methods | Chris Lattner | 2004-07-26 | 1 | -0/+13 | |
| | | | | | llvm-svn: 15230 | |||||
| * | Fix a latent bug in the AliasSetTracker that was exposed by the FreeInst ↵ | Chris Lattner | 2004-07-25 | 1 | -1/+2 | |
| | | | | | | | additions and broke a bunch of programs last night. llvm-svn: 15214 | |||||
| * | Add support for free instructions | Chris Lattner | 2004-07-25 | 1 | -2/+18 | |
| | | | | | llvm-svn: 15197 | |||||
| * | Clean up reference counting to stop "leaking" alias sets | Chris Lattner | 2004-07-22 | 1 | -11/+13 | |
| | | | | | llvm-svn: 15099 | |||||
| * | These files don't need to include <iostream> since they include ↵ | Brian Gaeke | 2004-07-21 | 2 | -2/+0 | |
| | | | | | | | "Support/Debug.h". llvm-svn: 15089 | |||||
| * | Add capability to remove aliasing aliassets from an AST | Chris Lattner | 2004-07-21 | 1 | -0/+56 | |
| | | | | | llvm-svn: 15066 | |||||
| * | Make the AST interface a bit richer by returning whether an insertion caused | Chris Lattner | 2004-07-21 | 1 | -19/+32 | |
| | | | | | | | an insertion or not (because the pointer set already existed). llvm-svn: 15064 | |||||
| * | Do not ignore casts unless they are pointer-pointer casts. This caused us | Chris Lattner | 2004-07-21 | 1 | -4/+8 | |
| | | | | | | | to miscompile the SingleSource/Regression/C++/pointer_member.cpp program. llvm-svn: 15062 | |||||
| * | bug 122: | Reid Spencer | 2004-07-18 | 9 | -48/+32 | |
| | | | | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14942 | |||||
| * | Fix incorrect computation of mod/ref sets. Do not ask for mod/ref information | Chris Lattner | 2004-07-17 | 1 | -21/+29 | |
| | | | | | | | for objects of size 0. llvm-svn: 14908 | |||||
| * | Print modref information in a useful way. | Chris Lattner | 2004-07-17 | 1 | -4/+14 | |
| | | | | | llvm-svn: 14907 | |||||
| * | Cleanups: fold two loops into one | Chris Lattner | 2004-07-17 | 1 | -3/+9 | |
| | | | | | | | New features: -print-all-alias-modref-info option, print more info llvm-svn: 14906 | |||||
| * | Be compatible with IA64 | Chris Lattner | 2004-07-16 | 1 | -1/+2 | |
| | | | | | llvm-svn: 14864 | |||||
| * | Fixes for PR341 | Chris Lattner | 2004-07-15 | 3 | -15/+16 | |
| | | | | | llvm-svn: 14843 | |||||
| * | Fix for PR341 | Chris Lattner | 2004-07-15 | 1 | -1/+1 | |
| | | | | | llvm-svn: 14842 | |||||
| * | Simplify logic. | Chris Lattner | 2004-07-14 | 1 | -2/+2 | |
| | | | | | llvm-svn: 14825 | |||||
| * | Disable some code that isn't helping matters | Chris Lattner | 2004-07-08 | 1 | -1/+6 | |
| | | | | | llvm-svn: 14682 | |||||

