summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO
Commit message (Collapse)AuthorAgeFilesLines
* Fix error where it wasn't getting the correct caller function.Bill Wendling2008-11-211-1/+2
| | | | llvm-svn: 59758
* If the function being inlined has a higher stack protection level than theBill Wendling2008-11-211-0/+9
| | | | | | | inlining function, then increase the stack protection level on the inlining function. llvm-svn: 59757
* Do not forget llvm.dbg.declare's first argument while removing debugging ↵Devang Patel2008-11-201-4/+12
| | | | | | information. llvm-svn: 59688
* Remove unused variables.Devang Patel2008-11-191-12/+9
| | | | llvm-svn: 59570
* Fix typo.Devang Patel2008-11-191-1/+1
| | | | llvm-svn: 59569
* Add new helper pass that strips all symbol names except debugging information.Devang Patel2008-11-181-28/+51
| | | | | | This pass makes it easier to test wheter debugging info. influences optimization passes or not. llvm-svn: 59552
* Remove even more llvm.dbg variables.Devang Patel2008-11-181-33/+50
| | | | | | | Remove all dead globals from llvm.metadata. Ignore linkonce linkage for selected llvm.dbg values. llvm-svn: 59547
* If SI->size() is 0, we are not allowed to dereference ->begin().Torok Edwin2008-11-161-2/+4
| | | | | | This fixed PR3078. llvm-svn: 59416
* simplify loopChris Lattner2008-11-161-5/+2
| | | | llvm-svn: 59406
* Refactor code.Devang Patel2008-11-141-37/+60
| | | | | | Strip debug information before stripping symbol names. llvm-svn: 59328
* Really remove all debug information.Devang Patel2008-11-131-11/+52
| | | | llvm-svn: 59208
* Use actual function name in comments.Devang Patel2008-11-111-2/+2
| | | | llvm-svn: 59063
* Do now allow InlineAlways pass to remove dead functions.Devang Patel2008-11-052-0/+13
| | | | llvm-svn: 58744
* add a period at the end of the comment, ignoring the fact that the comment ↵Andrew Lenharth2008-11-031-1/+1
| | | | | | would be hard pressed to be considered a sentence, but if it makes Bill happy... llvm-svn: 58630
* Ensure that we are checking only calls to the function we are interested in ↵Andrew Lenharth2008-11-031-2/+4
| | | | | | specializing llvm-svn: 58615
* Changes from Duncan's review:Nick Lewycky2008-11-021-9/+28
| | | | | | | | * merge two weak functions by making them both alias a third non-weak fn * don't reimplement CallSite::hasArgument * whitelist the safe linkage types llvm-svn: 58568
* Get this building on 64 bit machines (error:Duncan Sands2008-11-021-5/+5
| | | | | | | cast from ‘const llvm::PointerType*’ to ‘unsigned int’ loses precision). llvm-svn: 58561
* CMake: added a source file.Oscar Fuentes2008-11-021-0/+1
| | | | llvm-svn: 58559
* Add a new MergeFunctions pass. It finds identical functions and merges them.Nick Lewycky2008-11-021-0/+358
| | | | | | | | This triggers only 60 times in llvm-test (look at .llvm.bc, not .linked.rbc) and so it probably wont be turned on by default. Also, may of those are likely to go away when PR2973 is fixed. llvm-svn: 58557
* Add InlineCost class for represent the estimated cost of inlining aDaniel Dunbar2008-10-303-3/+16
| | | | | | | | | function. - This explicitly models the costs for functions which should "always" or "never" be inlined. This fixes bugs where such costs were not previously respected. llvm-svn: 58450
* Factor shouldInline method out of Inliner.Daniel Dunbar2008-10-291-18/+26
| | | | | | - No functionality change. llvm-svn: 58355
* Assorted comment/naming fixes, 80-col violations, and reindentation.Daniel Dunbar2008-10-281-3/+1
| | | | | | - No functionality change. llvm-svn: 58352
* Fix a bug that prevented llvm-extract -delete from working.Dan Gohman2008-10-211-1/+1
| | | | llvm-svn: 57864
* dont specialize weak functions and the likeNuno Lopes2008-10-081-1/+1
| | | | llvm-svn: 57305
* Ignore loads from and stores to local memory (i.e. allocas)Duncan Sands2008-10-041-9/+26
| | | | | | | | when deciding whether to mark a function readnone/readonly. Since the pass is currently run before SROA, this may be quite helpful. Requested by Chris on IRC. llvm-svn: 57050
* Clean up some multiple-return-value code that is no longerDan Gohman2008-10-031-5/+1
| | | | | | applicable. llvm-svn: 57033
* Teach internalize to preserve the callgraph.Duncan Sands2008-10-031-0/+7
| | | | | | Why? Because it was there! llvm-svn: 56996
* revert the addition of Preverves(CallGraph), per Duncan's commentsNuno Lopes2008-10-011-2/+0
| | | | llvm-svn: 56917
* add preserversCFG() + preservers(CallGraph)Nuno Lopes2008-09-301-0/+6
| | | | llvm-svn: 56887
* add AU.setPreservesCFG() since this pass only adds and removes function ↵Nuno Lopes2008-09-301-0/+5
| | | | | | attributes llvm-svn: 56868
* Speed up these passes when the callgraph hasDuncan Sands2008-09-292-4/+16
| | | | | | | huge simply connected components. Suggested by Chris. llvm-svn: 56787
* remove redundant test (mayBeOverriden() includes hasLinkOnceLinkage)Nuno Lopes2008-09-291-1/+1
| | | | llvm-svn: 56786
* Tweak some comments.Duncan Sands2008-09-291-4/+6
| | | | llvm-svn: 56784
* Rename isWeakForLinker to mayBeOverridden. Use itDuncan Sands2008-09-293-3/+3
| | | | | | | instead of hasWeakLinkage in a bunch of optimization passes. llvm-svn: 56782
* Implement function notes as function attributes. Devang Patel2008-09-263-3/+4
| | | | llvm-svn: 56716
* Now Attributes are divided in three groupsDevang Patel2008-09-265-19/+44
| | | | | | | | | | | | | - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn Return attributes use 0 as the index. Function attributes use ~0U as the index. This patch requires corresponding changes in llvm-gcc and clang. llvm-svn: 56704
* Large mechanical patch.Devang Patel2008-09-2510-90/+90
| | | | | | | | | | | | | | | s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. llvm-svn: 56622
* s/ParamAttrsWithIndex/FnAttributeWithIndex/gDevang Patel2008-09-243-19/+19
| | | | llvm-svn: 56535
* Put FN_NOTE_AlwaysInline and others in FnAttr namespace.Devang Patel2008-09-243-3/+3
| | | | llvm-svn: 56527
* Move FN_NOTE_AlwaysInline and other out of ParamAttrs namespace.Devang Patel2008-09-233-3/+3
| | | | | | Do not check isDeclaration() in hasNote(). It is clients' responsibility. llvm-svn: 56524
* s/ParameterAttributes/Attributes/gDevang Patel2008-09-234-15/+15
| | | | llvm-svn: 56513
* Use parameter attribute store (soon to be renamed) forDevang Patel2008-09-233-3/+3
| | | | | | Function Notes also. Function notes are stored at index ~0. llvm-svn: 56511
* Add hasNote() to check note associated with a function.Devang Patel2008-09-223-3/+3
| | | | llvm-svn: 56477
* Initial support for the CMake build system.Oscar Fuentes2008-09-221-0/+24
| | | | llvm-svn: 56419
* Implement review feedback from Devang: make useDuncan Sands2008-09-201-26/+11
| | | | | | of mayReadFromMemory and mayWriteToMemory. llvm-svn: 56387
* Add a new pass AddReadAttrs which works out which functionsDuncan Sands2008-09-191-0/+135
| | | | | | | | | can get the readnone/readonly attributes, and gives them it. The plan is to remove markmodref (which did the same thing by querying GlobalsModRef) and delete the analogous functionality from GlobalsModRef. llvm-svn: 56341
* Make safer variant of alias resolution routine to be defaultAnton Korobeynikov2008-09-091-2/+1
| | | | llvm-svn: 56005
* Resolve aliases, when possibleAnton Korobeynikov2008-09-091-0/+22
| | | | llvm-svn: 56001
* Update the callgraph correctly.Duncan Sands2008-09-081-1/+4
| | | | llvm-svn: 55896
* Update the callgraph correctly in ArgumentPromotion.Duncan Sands2008-09-081-0/+7
| | | | llvm-svn: 55895
OpenPOWER on IntegriCloud