aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/TailCallElim
AgeCommit message (Collapse)Author
2011-10-17Correct over-zealous removal of hack.Bill Wendling
Some code want to check that *any* call within a function has the 'returns twice' attribute, not just that the current function has one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142221 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Temporarily XFAIL waiting for a fix.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142215 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-05Check for the returns_twice attribute in callsFunctionThatReturnsTwice. ThisRafael Espindola
fixes PR11038, but there are still some cleanups to be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141204 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Add the returns_twice attribute to LLVM.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141001 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19Replace uses of unwind with unreachable for the same effect.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140077 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-02Try to eliminate the use of the 'unwind' instruction.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139046 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17make the asmparser reject function and type redefinitions. 'Merging' hasn't ↵Chris Lattner
been needed since llvm-gcc 3.4 days. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133248 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-16Don't do tail calls in a function that call setjmp. The stack might beRafael Espindola
corrupted when setjmp returns again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131399 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29Add a test for TCE return duplication.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124527 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-31merge two tests.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112617 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-31merge two tests and convert to filecheck.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-13Handle the case of a tail recursion in which the tail call is followedDuncan Sands
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108241 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-26Fix PR7328: when turning a tail recursion into a loop, need to preserveDuncan Sands
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106947 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-16Refine the detection of seemingly infinitely recursive calls where theDan Gohman
callee is expected to be expanded to something else by codegen, so that normal infinitely recursive calls are still transformed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101468 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-03Revert 94937 and move the noreturn check to codegen.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95198 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-31Do not mark no-return calls tail calls. It'll screw up special calls like ↵Evan Cheng
longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94937 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05Delete useless trailing semicolons.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Improve tail call elimination to handle the switch statement.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Oops, FunctionContainsEscapingAllocas is really used to mean two differentNick Lewycky
things. Back out part of r86349 for a moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86353 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-07Dust off tail recursion elimination. Fix a fixme by applying CaptureTrackingNick Lewycky
and add a .ll to demo the new capability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11Convert more tests to avoid llvm-as.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81545 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11Eliminate more redundant llvm-as calls.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81257 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08Change these tests to feed the assembly files to opt directly, insteadDan Gohman
of using llvm-as, now that opt supports this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81226 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-07tweak test, add PR#Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81158 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-05Eliminate uses of %prcontext.Daniel Dunbar
- I'd appreciate it if someone else eyeballs my changes to make sure I captured the intent of the test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81083 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19Improve tail call elim to move loads above readonly callsChris Lattner
when it allows forming a tail call. Patch by Frits van Bommel. This implements PR4323. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73752 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-20sabre brings to my attention that the 'tr' suffix is also obsoleteGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51349 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-20Rename the last test with .llx extension to .ll, resolve duplicate test by ↵Gabor Greif
renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51328 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10Remove llvm-upgrade and update tests.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48137 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10remove obsolete testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41820 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10Add missing llvm-dis.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10Prevent tailcallelim from breaking "recursive" calls to builtins.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41804 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29Convert .cvsignore filesJohn Criswell
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05move these xfailed tests to lib/Target/README.txtChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36805 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16For PR1319:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36142 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16For PR1319:Reid Spencer
Fix test syntax per new rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36133 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15Use %prcontext, $prcontext is not resolving for some reason.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36054 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15For PR1319:Reid Spencer
Conver to new test system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36045 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-11Make the llvm-runtest function much more amenable by eliminating all theReid Spencer
global variables that needed to be passed in. This makes it possible to add new global variables with only a couple changes (Makefile and llvm-dg.exp) instead of touching every single dg.exp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35918 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26For PR761:Reid Spencer
Remove "target endian/pointersize" or add "target datalayout" to make the test parse properly or set the datalayout because defaults changes. For PR645: Make global names use the @ prefix. For llvm-upgrade changes: Fix test cases or completely remove use of llvm-upgrade for test cases that cannot survive the new renaming or upgrade capabilities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33533 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31For PR950:Reid Spencer
Update the test suite to accommodate the change from signed integer types to signless integer types. The changes were of only a few kinds: 1. Make sure llvm-upgrade is run on the source which does the bulk of the changes automatically. 2. Change things like "grep 'int'" to "grep 'i32'" 3. In several tests bitcasting caused the same name to be reused in the same type plane. These had to be manually fixed. The fix was (generally) to leave the bitcast and provide the instruction with a new name. This should not affect the semantics of the test. In a few cases, the bitcasts were known to be superfluous and irrelevant to the test case so they were removed. 4. One test case uses a bytecode file which needed to be updated to the latest bytecode format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32789 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-02Use the llvm-upgrade program to upgrade llvm assembly.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32115 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12Added the ability to xfail based on llvmgcc versionTanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27635 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-23Tired of wading through cvs's list ? files that are generated when buildingReid Spencer
with srcdir = objdir to see what's okay and what's cruft. So, in goes a bunch of .cvsignore files to shut cvs up about known output from running "make check". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27009 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-05New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24191 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-07New testcases for PR615Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22689 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-10new testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21837 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-30This is a cross platform fail, failing on freebsd as wellChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18388 91177308-0d34-0410-b5e6-96231b3b80d8