summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/InlineSimple.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Implement function notes as function attributes. Devang Patel2008-09-261-1/+1
| | | | llvm-svn: 56716
* Large mechanical patch.Devang Patel2008-09-251-1/+1
| | | | | | | | | | | | | | | 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
* Put FN_NOTE_AlwaysInline and others in FnAttr namespace.Devang Patel2008-09-241-1/+1
| | | | llvm-svn: 56527
* Move FN_NOTE_AlwaysInline and other out of ParamAttrs namespace.Devang Patel2008-09-231-1/+1
| | | | | | Do not check isDeclaration() in hasNote(). It is clients' responsibility. llvm-svn: 56524
* Use parameter attribute store (soon to be renamed) forDevang Patel2008-09-231-1/+1
| | | | | | 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-221-1/+1
| | | | llvm-svn: 56477
* Add parentheses to make code more readable.Devang Patel2008-09-031-1/+1
| | | | llvm-svn: 55717
* Check noinline note and ignore other notes.Devang Patel2008-09-031-1/+1
| | | | llvm-svn: 55711
* Handle "noinline" note inside the simple inliner.Devang Patel2008-09-031-0/+5
| | | | llvm-svn: 55708
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-2/+4
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Increasing the inline limit from (overly conservative) 200 to 300. Given ↵Evan Cheng2008-03-241-0/+3
| | | | | | | | each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it). Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining. llvm-svn: 48725
* Allow clients to specify the inline threshold when creatingChris Lattner2008-01-121-0/+5
| | | | | | the inliner pass. Patch by Robert Zeh. llvm-svn: 45903
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Don't crash on bogus llvm.noinline. This is first part of PR1817 (preventing ↵Anton Korobeynikov2007-11-221-0/+4
| | | | | | reduction) llvm-svn: 44281
* Use SmallPtrSet.Devang Patel2007-07-271-2/+3
| | | | llvm-svn: 40560
* Add BasicInliner interface. Devang Patel2007-07-251-246/+6
| | | | | | | This interface allows clients to inline bunch of functions with module level call graph information.:wq llvm-svn: 40486
* fix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functionsChris Lattner2007-06-251-4/+8
| | | | | | with weak linkage. llvm-svn: 37723
* Inliner pass header file was moved.Tanya Lattner2007-06-191-1/+2
| | | | llvm-svn: 37665
* Formating fixes.Tanya Lattner2007-06-071-4/+4
| | | | llvm-svn: 37491
* Instruct the inliner to obey the noinline attribute. Add test case.Tanya Lattner2007-06-061-1/+43
| | | | llvm-svn: 37481
* Fix PR1395, by passing the ID correctlyChris Lattner2007-05-061-0/+1
| | | | llvm-svn: 36894
* Fix typo in comment.Nick Lewycky2007-05-061-1/+1
| | | | llvm-svn: 36873
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-0/+2
| | | | llvm-svn: 36632
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-3/+4
| | | | | | | the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. llvm-svn: 33939
* Inherit CallGraphSCCPass directly from Pass.Devang Patel2007-01-261-1/+1
| | | | llvm-svn: 33514
* For PR950:Reid Spencer2006-11-271-6/+3
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* For PR786:Reid Spencer2006-11-021-1/+1
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* Make inlining costs more accurate.Chris Lattner2006-09-091-3/+26
| | | | llvm-svn: 30231
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* 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
* teach the inliner about coldcc and noreturn functionsChris Lattner2005-05-181-0/+15
| | | | llvm-svn: 22113
* Remove trailing whitespaceMisha Brukman2005-04-211-3/+3
| | | | llvm-svn: 21427
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-1/+1
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* Ignore debugger intrinsics when doing inlining size computations.Chris Lattner2004-11-221-1/+2
| | | | llvm-svn: 18109
* Change this back so that I get stable numbers to reflect the change from theChris Lattner2004-11-091-1/+1
| | | | | | nightly testers llvm-svn: 17646
* VERY large functions that are only called from one place are not reallyChris Lattner2004-11-071-1/+1
| | | | | | | exciting to inline. Only inline medium or small sized functions with a single call site. llvm-svn: 17588
* '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
* This patch makes the inliner refuse to inline functions that have allocaChris Lattner2004-08-121-25/+57
| | | | | | | | | | instructions in the body of the function (not the entry block). This fixes test/Programs/SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c and test/Programs/External/SPEC/CINT2000/176.gcc on zion. This should obviously be pulled into 1.3. llvm-svn: 15684
* bug 122:Reid Spencer2004-07-181-3/+2
| | | | | | - Minimize redundant isa<GlobalValue> usage llvm-svn: 14948
* Remove the "really gross hacks" that are there to deal with recursive functions.Chris Lattner2004-04-081-7/+1
| | | | | | | | Now we collect all of the call sites we are interested in inlining, then inline them. This entirely avoids issues with trying to inline a call site we got by inlining another call site. This also eliminates iterator invalidation issues. llvm-svn: 12770
* Restore old inlining heuristic. As the comment indicates, this is a nastyChris Lattner2004-03-151-1/+8
| | | | | | horrible hack. llvm-svn: 12423
* This change makes two big adjustments.Chris Lattner2004-03-131-11/+49
| | | | | | | | | | * Be a lot more accurate about what the effects will be when inlining a call to a function when an argument is an alloca. * Dramatically reduce the penalty for inlining a call in a large function. This heuristic made it almost impossible to inline a function into a large function, no matter how small the callee is. llvm-svn: 12363
* Considering that CI is not even IN SCOPE here, I wooda thought the compilerChris Lattner2003-11-211-1/+1
| | | | | | would have caught this. *sigh* llvm-svn: 10142
* * Finegrainify namespacificationChris Lattner2003-11-211-30/+99
| | | | | | | | * Make the cost metric for passing constants in as arguments to functions MUCH more accurate, by actually estimating the amount of code that will be constant propagated away. llvm-svn: 10136
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Reorder for minor efficiency gainChris Lattner2003-10-201-1/+1
| | | | llvm-svn: 9285
* Decrease usage of use_size()Chris Lattner2003-10-151-1/+1
| | | | llvm-svn: 9135
OpenPOWER on IntegriCloud