summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/TailCallElim
Commit message (Collapse)AuthorAgeFilesLines
* Converted test dont-tce-tail-marked-call.ll to use FileCheck.Michael Gottesman2013-01-111-2/+2
| | | | llvm-svn: 172172
* This commit is a 4x squash commit consisting of 4x functions converted to ↵Michael Gottesman2013-01-114-6/+12
| | | | | | | | | | | | use FileCheck instead of grep. Messages: Converted test case trivial_codegen_tailcall.ll to use FileCheck. Converted test return_constant.ll to use FileCheck instead of grep. Converted test reorder_load.ll to use FileCheck instead of grep. Converted test intervening-inst.ll to use FileCheck instead of grep. llvm-svn: 172171
* Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ↵Dmitri Gribenko2013-01-011-1/+3
| | | | | | | | | | ModuleID This is done to avoid odd test failures, like the one fixed in r171243. While there, FileCheck'ize tests. llvm-svn: 171344
* Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ↵Dmitri Gribenko2013-01-011-1/+1
| | | | | | | | | | ModuleID This is done to avoid odd test failures, like the one fixed in r171243. My previous regex was not good enough to find these. llvm-svn: 171343
* Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ↵Dmitri Gribenko2012-12-301-1/+1
| | | | | | | | ModuleID This is done to avoid odd test failures, like the one fixed in r171243. llvm-svn: 171246
* Revert r166407 because it caused analyzer tests to crash and broke self-host ↵Argyrios Kyrtzidis2012-10-221-19/+4
| | | | | | bots. llvm-svn: 166424
* Reapply r166405, teaching tailcallelim to be smarter about nocapture, with aNick Lewycky2012-10-221-4/+19
| | | | | | | | | | | | | | | very small but very important bugfix: bool shouldExplore(Use *U) { Value *V = U->get(); if (isa<CallInst>(V) || isa<InvokeInst>(V)) [...] should have read: bool shouldExplore(Use *U) { Value *V = U->getUser(); if (isa<CallInst>(V) || isa<InvokeInst>(V)) Fixes PR14143! llvm-svn: 166407
* Revert r166405, "Teach TailRecursionElimination to consider 'nocapture' when ↵NAKAMURA Takumi2012-10-221-4/+2
| | | | | | | | deciding whether" It broke selfhosting stage2 in several builders. llvm-svn: 166406
* Teach TailRecursionElimination to consider 'nocapture' when deciding whetherNick Lewycky2012-10-211-2/+4
| | | | | | calls can be marked tail. llvm-svn: 166405
* Convert the uses of '|&' to use '2>&1 |' instead, which works on oldChandler Carruth2012-07-022-2/+2
| | | | | | | | | | versions of Bash. In addition, I can back out the change to the lit built-in shell test runner to support this. This should fix the majority of fallout on Darwin, but I suspect there will be a few straggling issues. llvm-svn: 159544
* Convert all tests using TCL-style quoting to use shell-style quoting.Chandler Carruth2012-07-024-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | This was done through the aid of a terrible Perl creation. I will not paste any of the horrors here. Suffice to say, it require multiple staged rounds of replacements, state carried between, and a few nested-construct-parsing hacks that I'm not proud of. It happens, by luck, to be able to deal with all the TCL-quoting patterns in evidence in the LLVM test suite. If anyone is maintaining large out-of-tree test trees, feel free to poke me and I'll send you the steps I used to convert things, as well as answer any painful questions etc. IRC works best for this type of thing I find. Once converted, switch the LLVM lit config to use ShTests the same as Clang. In addition to being able to delete large amounts of Python code from 'lit', this will also simplify the entire test suite and some of lit's architecture. Finally, the test suite runs 33% faster on Linux now. ;] For my 16-hardware-thread (2x 4-core xeon e5520): 36s -> 24s llvm-svn: 159525
* Replace all instances of dg.exp file with lit.local.cfg, since all tests are ↵Eli Bendersky2012-02-162-3/+1
| | | | | | | | run with LIT now and now Dejagnu. dg.exp is no longer needed. Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches. llvm-svn: 150664
* Upgrade syntax of tests using volatile instructions to use 'load volatile' ↵Chris Lattner2011-11-271-2/+2
| | | | | | instead of 'volatile load', which is archaic. llvm-svn: 145171
* Correct over-zealous removal of hack.Bill Wendling2011-10-171-1/+0
| | | | | | | Some code want to check that *any* call within a function has the 'returns twice' attribute, not just that the current function has one. llvm-svn: 142221
* Temporarily XFAIL waiting for a fix.Bill Wendling2011-10-171-1/+2
| | | | llvm-svn: 142215
* Check for the returns_twice attribute in callsFunctionThatReturnsTwice. ThisRafael Espindola2011-10-051-4/+17
| | | | | | fixes PR11038, but there are still some cleanups to be done. llvm-svn: 141204
* Add the returns_twice attribute to LLVM.Rafael Espindola2011-10-031-1/+1
| | | | llvm-svn: 141001
* Replace uses of unwind with unreachable for the same effect.Bill Wendling2011-09-191-2/+2
| | | | llvm-svn: 140077
* Try to eliminate the use of the 'unwind' instruction.Bill Wendling2011-09-021-1/+1
| | | | llvm-svn: 139046
* make the asmparser reject function and type redefinitions. 'Merging' hasn't ↵Chris Lattner2011-06-171-1/+0
| | | | | | | | been needed since llvm-gcc 3.4 days. llvm-svn: 133248
* Don't do tail calls in a function that call setjmp. The stack might beRafael Espindola2011-05-161-0/+16
| | | | | | corrupted when setjmp returns again. llvm-svn: 131399
* Add a test for TCE return duplication.Evan Cheng2011-01-291-0/+23
| | | | llvm-svn: 124527
* merge two tests.Chris Lattner2010-08-312-35/+35
| | | | llvm-svn: 112617
* merge two tests and convert to filecheck.Chris Lattner2010-08-312-23/+28
| | | | llvm-svn: 112613
* Handle the case of a tail recursion in which the tail call is followedDuncan Sands2010-07-131-1/+4
| | | | | | | | | by a return that returns a constant, while elsewhere in the function another return instruction returns a different constant. This is a special case of accumulator recursion, so just generalize the existing logic a bit. llvm-svn: 108241
* Fix PR7328: when turning a tail recursion into a loop, need to preserveDuncan Sands2010-06-261-0/+17
| | | | | | | | the returned value after the tail call if it differs from other return values. The optimal thing to do would be to introduce a phi node for the return value, but for the moment just fix the miscompile. llvm-svn: 106947
* Refine the detection of seemingly infinitely recursive calls where theDan Gohman2010-04-161-1/+25
| | | | | | | callee is expected to be expanded to something else by codegen, so that normal infinitely recursive calls are still transformed. llvm-svn: 101468
* Revert 94937 and move the noreturn check to codegen.Evan Cheng2010-02-031-12/+0
| | | | llvm-svn: 95198
* Do not mark no-return calls tail calls. It'll screw up special calls like ↵Evan Cheng2010-01-311-0/+12
| | | | | | longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know. llvm-svn: 94937
* Delete useless trailing semicolons.Dan Gohman2010-01-051-3/+3
| | | | llvm-svn: 92740
* Improve tail call elimination to handle the switch statement.Nick Lewycky2009-11-071-0/+34
| | | | llvm-svn: 86403
* Oops, FunctionContainsEscapingAllocas is really used to mean two differentNick Lewycky2009-11-071-0/+1
| | | | | | things. Back out part of r86349 for a moment. llvm-svn: 86353
* Dust off tail recursion elimination. Fix a fixme by applying CaptureTrackingNick Lewycky2009-11-071-0/+24
| | | | | | and add a .ll to demo the new capability. llvm-svn: 86349
* Convert more tests to avoid llvm-as.Dan Gohman2009-09-111-2/+1
| | | | llvm-svn: 81545
* Eliminate more redundant llvm-as calls.Dan Gohman2009-09-112-2/+2
| | | | llvm-svn: 81540
* Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman2009-09-117-7/+7
| | | | | | | | 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
* Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman2009-09-0810-10/+10
| | | | llvm-svn: 81257
* Change these tests to feed the assembly files to opt directly, insteadDan Gohman2009-09-087-7/+7
| | | | | | of using llvm-as, now that opt supports this. llvm-svn: 81226
* tweak test, add PR#Chris Lattner2009-09-071-1/+2
| | | | llvm-svn: 81158
* Eliminate uses of %prcontext.Daniel Dunbar2009-09-051-2/+3
| | | | | | | - I'd appreciate it if someone else eyeballs my changes to make sure I captured the intent of the test. llvm-svn: 81083
* Improve tail call elim to move loads above readonly callsChris Lattner2009-06-192-0/+165
| | | | | | | when it allows forming a tail call. Patch by Frits van Bommel. This implements PR4323. llvm-svn: 73752
* 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
* Remove llvm-upgrade and update tests.Tanya Lattner2008-03-108-97/+86
| | | | llvm-svn: 48137
* remove obsolete testcaseChris Lattner2007-09-101-9/+0
| | | | llvm-svn: 41820
* Add missing llvm-dis.Dale Johannesen2007-09-101-1/+1
| | | | llvm-svn: 41813
* Prevent tailcallelim from breaking "recursive" calls to builtins.Chris Lattner2007-09-101-0/+10
| | | | llvm-svn: 41804
* Convert .cvsignore filesJohn Criswell2007-06-291-3/+0
| | | | llvm-svn: 37801
* move these xfailed tests to lib/Target/README.txtChris Lattner2007-05-051-31/+0
| | | | llvm-svn: 36805
* For PR1319:Reid Spencer2007-04-161-2/+3
| | | | | | | | Remove && from the end of the lines to prevent tests from throwing run lines into the background. Also, clean up places where the same command is run multiple times by using a temporary file. llvm-svn: 36142
OpenPOWER on IntegriCloud