summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO
Commit message (Collapse)AuthorAgeFilesLines
* Teach the strip pass to strip type names in addition to value names. ThisChris Lattner2006-03-151-0/+5
| | | | | | is fallout from the type/value split in the symtab long long ago :) llvm-svn: 26785
* Handle the removal of the debug chain.Jim Laskey2006-03-131-1/+1
| | | | llvm-svn: 26729
* fix a pastoChris Lattner2006-03-091-1/+1
| | | | llvm-svn: 26627
* Switch to using a numeric id for anchors.Jim Laskey2006-03-071-3/+4
| | | | llvm-svn: 26598
* Fix ConstantMerge/2006-03-07-DontMergeDiffSections.ll, a problem JimChris Lattner2006-03-071-11/+14
| | | | | | | hypotheticalized about, where we would incorrectly merge two globals in different sections. llvm-svn: 26597
* Make this work with renamed intrinsics.Chris Lattner2006-03-031-26/+25
| | | | llvm-svn: 26482
* fix a bunch of alpha regressions. see bug 709Andrew Lenharth2006-02-151-6/+6
| | | | llvm-svn: 26218
* add a bunch more optimizations for unary double math functionsChris Lattner2006-01-231-18/+78
| | | | llvm-svn: 25530
* Refactor/genericize this, no functionality changeChris Lattner2006-01-231-16/+30
| | | | llvm-svn: 25525
* Make iostream #inclusion explicitChris Lattner2006-01-226-1/+7
| | | | llvm-svn: 25514
* Make this more efficient in the following ways:Chris Lattner2006-01-221-22/+37
| | | | | | | | | 1. Do not statically construct a map when the program starts up, this is expensive and cannot be optimized. Instead, create a list. 2. Do not insert entries for all function in the module into a hashmap that lives the full life of the compiler. llvm-svn: 25512
* Several non-functionality changing changes:Chris Lattner2006-01-221-311/+151
| | | | | | | | | 1. Use the varargs version of getOrInsertFunction to simplify code. 2. remove #include 3. Reduce the number of #ifdef's. 4. remove extraneous vertical whitespace. llvm-svn: 25508
* For PR696:Reid Spencer2006-01-191-0/+9
| | | | | | | | Don't do floor->floorf conversion if floorf is not available. This checks the compiler's host, not its target, which is incorrect for cross-compilers Not sure that's important as we don't build many cross-compilers. llvm-svn: 25456
* If not internalizing, don't mark llvm.global[cd]tors const, as a fix for aChris Lattner2006-01-191-2/+5
| | | | | | hypothetical future boog. llvm-svn: 25430
* Don't internalize llvm.global[cd]tor unless there are uses of it. ThisChris Lattner2006-01-191-3/+9
| | | | | | unbreaks front-ends that don't use __main (like the new CFE). llvm-svn: 25429
* Clean up the FFS optimization code, and make it correctly create the appropriateChris Lattner2006-01-171-41/+43
| | | | | | | unsigned llvm.cttz.* intrinsic, fixing the 2005-05-11-Popcount-ffs-fls regression last night. llvm-svn: 25398
* Let the inliner update the callgraph to reflect the changes it makes, insteadChris Lattner2006-01-141-12/+2
| | | | | | of doing it ourselves. This fixes Transforms/Inline/2006-01-14-CallGraphUpdate.ll llvm-svn: 25321
* Permit inlining functions that contain dynamic allocations now thatChris Lattner2006-01-131-27/+4
| | | | | | | InlineFunction handles this case safely. This implements Transforms/Inline/dynamic_alloca_test.ll. llvm-svn: 25288
* Fix 80 column violationsChris Lattner2006-01-131-2/+3
| | | | llvm-svn: 25279
* Pull inline methods out of the pass class definition to make it easier toChris Lattner2006-01-031-78/+88
| | | | | | | | read the code. Do not internalize debugger anchors. llvm-svn: 25067
* Improve ResolveFunctions to:Reid Spencer2005-12-131-13/+15
| | | | | | | | | a) use better local variable names (OldMT -> OldFT) where "M" is used to mean "Function" (perhaps it was previously "Method"?) b) print out the module identifier in a warning message so that it is possible to track down in which module the error occurred. llvm-svn: 24698
* Wrap a long line, never internalize llvm.used.Chris Lattner2005-12-051-2/+6
| | | | llvm-svn: 24602
* Add support alignment of allocation instructions.Nate Begeman2005-11-051-1/+2
| | | | | | | | | Add support for specifying alignment and size of setjmp jmpbufs. No targets currently do anything with this information, nor is it presrved in the bytecode representation. That's coming up next. llvm-svn: 24196
* Stop using deprecated typesAlkis Evlogimenos2005-10-251-1/+2
| | | | llvm-svn: 23973
* DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE nowChris Lattner2005-10-241-1/+1
| | | | llvm-svn: 23940
* Only build .a file versions of these libraries, instead of .a and .o versions.Chris Lattner2005-10-241-0/+1
| | | | | | This should speed up build times. llvm-svn: 23933
* When a function takes a variable number of pointer arguments, with a zeroJeff Cohen2005-10-232-9/+11
| | | | | | | | | | | | | pointer marking the end of the list, the zero *must* be cast to the pointer type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will not extend the zero to 64 bits, thus allowing the upper 32 bits to be random junk. The new END_WITH_NULL macro may be used to annotate a such a function so that GCC (version 4 or newer) will detect the use of un-casted zero at compile time. llvm-svn: 23888
* Add an option to this pass. If it is set, we are allowed to internalizeChris Lattner2005-10-181-4/+10
| | | | | | | all but main. If it's not set, we can still internalize, but only if an explicit symbol list is provided. llvm-svn: 23783
* Fold isascii into a simple comparison. This speeds up 197.parser by 7.4%,Chris Lattner2005-09-291-0/+26
| | | | | | bringing the LLC time down to the CBE time. llvm-svn: 23521
* remove a bunch of unneeded stuff, or self evident commentsChris Lattner2005-09-291-45/+6
| | | | llvm-svn: 23519
* Implement a couple of memcmp folds from the todo listChris Lattner2005-09-291-3/+121
| | | | llvm-svn: 23517
* Fix a regression in my previous patch, fixing GlobalOpt/2005-09-27-Crash.llChris Lattner2005-09-271-1/+1
| | | | | | and PR632. llvm-svn: 23484
* Add support for external calls that we know how to constant fold. This ↵Chris Lattner2005-09-271-11/+20
| | | | | | | | implements ctor-list-opt.ll:CTOR8 llvm-svn: 23465
* Fix a bug where we would evaluate stores into linkonce objects which could beChris Lattner2005-09-271-1/+6
| | | | | | potentially replaced at link-time. llvm-svn: 23463
* Implement support for static constructors with calls in them. This is usefulChris Lattner2005-09-271-23/+54
| | | | | | | | because gccas runs globalopt before inlining. This implements ctor-list-opt.ll:CTOR7 llvm-svn: 23462
* Refactor this code a bit, no functionality changes.Chris Lattner2005-09-271-22/+40
| | | | llvm-svn: 23460
* Remove some dead code. ctor evaluation subsumes empty ctor elimChris Lattner2005-09-261-12/+0
| | | | llvm-svn: 23453
* Add support for alloca, implementing ctor-list-opt.ll:CTOR6Chris Lattner2005-09-261-17/+48
| | | | llvm-svn: 23452
* Add a debug printout, fix a crash on kc++Chris Lattner2005-09-261-1/+6
| | | | llvm-svn: 23450
* Implement loads/stores through GEP's of globals. This implementsChris Lattner2005-09-261-6/+98
| | | | | | ctor-list-opt.ll:CTOR5. llvm-svn: 23449
* Replace TraverseGEPInitializer with ConstantFoldLoadThroughGEPConstantExprChris Lattner2005-09-261-17/+5
| | | | llvm-svn: 23447
* add a commentChris Lattner2005-09-261-0/+3
| | | | llvm-svn: 23442
* Add support for getelementptr, load, and correctly reject volatile stores.Chris Lattner2005-09-261-0/+29
| | | | llvm-svn: 23441
* Add support for br/brcond/switch and phiChris Lattner2005-09-261-3/+47
| | | | llvm-svn: 23439
* Add a simple interpreter to this code, allowing us to statically evaluateChris Lattner2005-09-261-4/+110
| | | | | | global ctors that are simple enough. This implements ctor-list-opt.ll:CTOR2. llvm-svn: 23437
* factor some code into a InstallGlobalCtors method, add comments. No ↵Chris Lattner2005-09-261-35/+52
| | | | | | functionality change. llvm-svn: 23435
* Make the global opt optimizer work on modules with a null terminator, byChris Lattner2005-09-261-8/+13
| | | | | | accepting the null even with a non-65535 init prio llvm-svn: 23434
* Factor this code out into a few methods.Chris Lattner2005-09-261-33/+190
| | | | | | | | | | | | | Implement the start of global ctor optimization. It is currently smart enough to remove the global ctor for cases like this: struct foo { foo() {} } x; ... saving a bit of startup time for the program. llvm-svn: 23433
* Fix some logic I broke that caused a regression onChris Lattner2005-09-251-3/+5
| | | | | | SimplifyLibCalls/2005-05-20-sprintf-crash.ll llvm-svn: 23430
* Simplify this code a bit by relying on recursive simplification. SupportChris Lattner2005-09-241-51/+43
| | | | | | | | sprintf("%s", P)'s that have uses. s/hasNUses(0)/use_empty()/ llvm-svn: 23425
OpenPOWER on IntegriCloud