summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/Inline
Commit message (Collapse)AuthorAgeFilesLines
...
* When considering whether to inline Callee into Caller,Dale Johannesen2009-10-091-0/+111
| | | | | | | | | and that will make Caller too big to inline, see if it might be better to inline Caller into its callers instead. This situation is described in PR 2973, although I haven't tried the specific case in SPASS. llvm-svn: 83602
* Eliminate more redundant llvm-as calls.Dan Gohman2009-09-111-1/+1
| | | | llvm-svn: 81540
* Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman2009-09-1148-53/+53
| | | | | | | | input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. llvm-svn: 81537
* Eliminate more uses of llvm-as and llvm-dis.Dan Gohman2009-09-091-2/+2
| | | | llvm-svn: 81293
* Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman2009-09-0827-33/+33
| | | | llvm-svn: 81257
* Fix PR4909, patch by Jakub Staszak.Owen Anderson2009-09-081-0/+15
| | | | llvm-svn: 81250
* Change these tests to feed the assembly files to opt directly, insteadDan Gohman2009-09-0849-54/+54
| | | | | | of using llvm-as, now that opt supports this. llvm-svn: 81226
* Eliminate uses of %prcontext.Daniel Dunbar2009-09-051-1/+3
| | | | | | | - I'd appreciate it if someone else eyeballs my changes to make sure I captured the intent of the test. llvm-svn: 81083
* testcase for PR3601Chris Lattner2009-09-011-0/+33
| | | | llvm-svn: 80664
* fix a crash building SPASS by tolerating a callsite that doesn't existChris Lattner2009-08-311-0/+57
| | | | | | in the callgraph, see the big comment at the top of the testcase. llvm-svn: 80541
* Fix PR4834, a tricky case where the inliner would resolve anChris Lattner2009-08-311-0/+16
| | | | | | | | | | | | | | | indirect function pointer, inline it, then go to delete the body. The problem is that the callgraph had other references to the function, though the inliner had no way to know it, so we got a dangling pointer and an invalid iterator out of the deal. The fix to this is pretty simple: stop the inliner from deleting the function by knowing that there are references to it. Do this by making CallGraphNodes contain a refcount. This requires moving deletion of available_externally functions to the module-level cleanup sweep where it belongs. llvm-svn: 80533
* Implement a new optimization in the inliner: if inlining multipleChris Lattner2009-08-271-0/+26
| | | | | | | | | | | | | | | | | | | calls into a function and if the calls bring in arrays, try to merge them together to reduce stack size. For example, in the testcase we'd previously end up with 4 allocas, now we end up with 2 allocas. As described in the comments, this is not really the ideal solution to this problem, but it is surprisingly effective. For example, on 176.gcc, we end up eliminating 67 arrays at "gccas" time and another 24 at "llvm-ld" time. One piece of concern that I didn't look into: at -O0 -g with forced inlining this will almost certainly result in worse debug info. I think this is acceptable though given that this is a case of "debugging optimized code", and we don't want debug info to prevent the optimizer from doing things anyway. llvm-svn: 80215
* the inliner shouldn't crash on this.Chris Lattner2009-08-271-0/+31
| | | | llvm-svn: 80214
* Remove obsolete -f flags.Dan Gohman2009-08-251-1/+1
| | | | llvm-svn: 79992
* PR4123: don't crash when inlining a call which uses its own result.Eli Friedman2009-05-081-0/+20
| | | | llvm-svn: 71199
* While inlining, clone llvm.dbg.func.start intrinsic and adjust Devang Patel2009-04-151-86/+0
| | | | | | llvm.dbg.region.end instrinsic. This nested llvm.dbg.func.start/llvm.dbg.region.end pair now enables DW_TAG_inlined_subroutine support in code generator. llvm-svn: 69118
* Add a new "available_externally" linkage type. This is intendedChris Lattner2009-04-131-0/+16
| | | | | | | | to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it appears to work. llvm-svn: 68940
* If a function is marked alwaysinline, it must be inlined (possibly for ↵Evan Cheng2009-03-101-0/+15
| | | | | | correctness). Do so even if the callee has dynamic alloca and the caller doesn't. llvm-svn: 66539
* Fix a nasty bug (PR3550) where the inline pass could incorrectly mark Chris Lattner2009-02-121-0/+35
| | | | | | | calls with the tail marker when inlining them through an invoke. Patch, testcase, and perfect analysis by Jay Foad! llvm-svn: 64364
* Do not clone llvm.dbg.func.start and corresponding llvm.dbg.region.end ↵Devang Patel2009-02-101-0/+86
| | | | | | during inlining. llvm-svn: 64209
* Revert r63600. It didn't fix the bug, it just moved it a bit.Nick Lewycky2009-02-031-32/+0
| | | | llvm-svn: 63618
* Update the callgraph when replacing InvokeInst with CallInst when inlining.Nick Lewycky2009-02-031-0/+32
| | | | llvm-svn: 63600
* Fix testsuite regressions from recursive inlining.Dale Johannesen2009-01-131-0/+293
| | | | llvm-svn: 62189
* Enable recursive inlining. Reduce inlining thresholdDale Johannesen2009-01-121-0/+92
| | | | | | | back to 200; 400 seems to be too high, loses more than it gains. llvm-svn: 62107
* Do not inline functions with (dynamic) alloca intoDale Johannesen2009-01-082-0/+40
| | | | | | | | | | | functions that don't already have a (dynamic) alloca. Dynamic allocas cause inefficient codegen and we shouldn't propagate this (behavior follows gcc). Two existing tests assumed such inlining would be done; they are hacked by adding an alloca in the caller, preserving the point of the tests. llvm-svn: 61946
* Add PR number.Devang Patel2008-11-051-0/+1
| | | | llvm-svn: 58765
* New test case.Devang Patel2008-11-051-0/+6
| | | | llvm-svn: 58745
* Add InlineCost class for represent the estimated cost of inlining aDaniel Dunbar2008-10-301-0/+14
| | | | | | | | | 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
* Implement function notes as function attributes. Devang Patel2008-09-262-2/+2
| | | | llvm-svn: 56716
* Rationalize the names of passes that print information:Duncan Sands2008-09-231-1/+1
| | | | | | | | | | | | | | | | | -callgraph => print-callgraph -callscc => print-callgraph-sccs -cfgscc => print-cfg-sccs -externalfnconstants => print-externalfnconstants -print => print-function -print-alias-sets (no change) -print-callgraph => dot-callgraph -print-cfg => dot-cfg -print-cfg-only => dot-cfg-only -print-dom-info (no change) -printm => print-module -printusedtypes => print-used-types llvm-svn: 56487
* respect inline=never and inline=always notes.Devang Patel2008-09-022-0/+20
| | | | llvm-svn: 55673
* Move two tests from SRETPromotion to Inline, since they only call opt -inline.Matthijs Kooijman2008-08-072-0/+110
| | | | llvm-svn: 54465
* Let some more tests ignore expected output on stderr.Matthijs Kooijman2008-06-101-1/+1
| | | | | | | | | Also, use > %t instead of -o %t for output in one test since that also works when %t already exists. This fixes 6 testcases. llvm-svn: 52178
* Eliminate questionable syntax for stdin redirection. This probably also ↵Gabor Greif2008-05-201-2/+2
| | | | | | speeds things up a bit. llvm-svn: 51357
* sabre brings to my attention that the 'tr' suffix is also obsoleteGabor Greif2008-05-201-1/+1
| | | | llvm-svn: 51349
* Rename the last test with .llx extension to .ll, resolve duplicate test by ↵Gabor Greif2008-05-201-1/+1
| | | | | | renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too. llvm-svn: 51328
* Update old-style syntax in some "not grep" tests.Dan Gohman2008-05-011-1/+1
| | | | llvm-svn: 50560
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-251-13/+0
| | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265
* rename *.llx -> *.ll, last batch.Chris Lattner2008-04-191-0/+0
| | | | llvm-svn: 49971
* Turn unwind_to into "unwinds to".Nick Lewycky2008-03-101-1/+1
| | | | llvm-svn: 48123
* Update the inliner and simplifycfg to handle unwind_to.Nick Lewycky2008-03-091-0/+13
| | | | llvm-svn: 48086
* Use cast instead of dyn_cast.Devang Patel2008-03-041-9/+11
| | | | | | Update test to use multiple return value directly, instead of relying on -sretpromotion. llvm-svn: 47907
* Handle multiple return values.Devang Patel2008-03-041-0/+26
| | | | llvm-svn: 47904
* Remove llvm-upgrade and update test cases.Tanya Lattner2008-03-0126-625/+624
| | | | llvm-svn: 47793
* Revert r46393: readonly/readnone functions are noDuncan Sands2008-01-271-3/+3
| | | | | | longer allowed to write through byval arguments. llvm-svn: 46416
* Invert this test, because it is wrong if we allowDuncan Sands2008-01-261-3/+3
| | | | | | | readonly functions to use byval parameters as local storage (how much do we want this?). llvm-svn: 46399
* we don't have to make an explicit copy of a byval argument when Chris Lattner2008-01-121-0/+28
| | | | | | | inlining a function if we know that the function does not write to *any* memory. This implements test/Transforms/Inline/byval2.ll llvm-svn: 45912
* When inlining a functino with a byval argument, make an explicit Chris Lattner2008-01-111-0/+28
| | | | | | copy of it in case the callee modifies the struct. llvm-svn: 45853
* When inlining through an 'nounwind' call, mark inlinedDuncan Sands2007-12-191-0/+19
| | | | | | | | | calls 'nounwind'. It is important for correct C++ exception handling that nounwind markings do not get lost, so this transformation is actually needed for correctness. llvm-svn: 45218
* Make invokes of inline asm legal. Teach codegenDuncan Sands2007-12-171-1/+1
| | | | | | | | how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). llvm-svn: 45108
OpenPOWER on IntegriCloud