Commit Graph

276 Commits

Author SHA1 Message Date
Devang Patel
65085cf7b3 Ignore dbg intrinsics while hoisting common code in the two blocks up into the branch block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04 00:03:08 +00:00
Devang Patel
383d7ed915 Do not let dbg intrinsic block folding of two entry phi node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03 22:12:02 +00:00
Chris Lattner
1c2ad9ff86 fix a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-22 07:08:58 +00:00
Bill Wendling
c60fbcc133 Temporarily XFAIL until this can be looked at. r62557 is what caused it to start failing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-20 10:28:39 +00:00
Chris Lattner
63bf29b5b1 another fix for PR3354
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-20 01:15:41 +00:00
Chris Lattner
6ff645bf0f Fix a problem exposed by PR3354: simplifycfg was making a potentially
trapping instruction be executed unconditionally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62541 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-19 23:03:13 +00:00
Chris Lattner
a14fa71a4e convert this to an unfoldable potentially trapping constant expr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62536 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-19 22:12:33 +00:00
Bill Wendling
13524bfd00 Temporarily revert r62487. It's causing this error during a release bootstrap of
llvm-gcc. Most likely, it's miscompiling one of the "gen*" programs:

/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.6.0/bin/ -c -g -O2 -mdynamic-no-pic -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -mdynamic-no-pic -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/build -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -o build/gencondmd.o build/gencondmd.c
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: excess elements in struct initializer
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: (near initialization for 'insn_conditions[4]')
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected ',' or ';' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:927: error: expected identifier or '(' before ',' token
../../llvm-gcc.src/gcc/config/i386/sse.md:3458: error: expected identifier or '(' before ',' token
...



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62506 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-19 08:46:20 +00:00
Chris Lattner
c4f85dd708 Fix PR3016, a bug which can occur do to an invalid assumption:
we assumed a CFG structure that would be valid when all code in 
the function is reachable, but not all code is necessarily 
reachable.  Do a simple, but horrible, CFG walk to check for this
case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62487 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-19 02:46:28 +00:00
Eli Friedman
080efb8cea Add a helper to remove a branch and DCE the condition, and use it
consistently for deleting branches.  In addition to being slightly 
more readable, this makes SimplifyCFG a bit better 
about cleaning up after itself when it makes conditions unused.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61100 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-16 20:54:32 +00:00
Chris Lattner
a16ead8b10 fix a bug I introduced in simplifycfg handling single entry phi
nodes. FoldSingleEntryPHINodes deletes the PHI, so there is no
need to delete it afterward.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60653 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 07:22:45 +00:00
Chris Lattner
f8131c99de Fix PR2967 by not deleting volatile load/stores that occur before unreachable.
I don't really see this as being needed, but there is little harm from doing
it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58385 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-29 17:46:26 +00:00
Devang Patel
20da1f07da Nick Lewycky's patch.
While hosting instruction check PHI node.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57025 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 18:57:37 +00:00
Devang Patel
48fbc2d39b Do not hoist instruction above branch condition. The instruction may use branch condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56286 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-17 18:21:49 +00:00
Devang Patel
e435a5d937 Fix simplifycfg crash in handing block merge.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55971 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-09 01:06:56 +00:00
Owen Anderson
7c856c09cd Remove GCSE and LoadVN from the testsuite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54832 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16 00:00:54 +00:00
Chris Lattner
093a438502 Fix mishandling of the infinite loop case when merging two blocks. This
fixes PR2540.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53533 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-13 22:23:11 +00:00
Evan Cheng
4d09efd7b8 Speculatively execute a block when the the block is the then part of a triangle shape and it contains a single, side effect free, cheap instruction. The branch is eliminated by adding a select instruction. i.e.
Turn                                                                                                                                                                                                       
BB:                                                                                                                                                                                                        
    %t1 = icmp                                                                                                                                                                                             
    br i1 %t1, label %BB1, label %BB2                                                                                                                                                                      
BB1:                                                                                                                                                                                                       
    %t3 = add %t2, c                                                                                                                                                                                       
    br label BB2                                                                                                                                                                                           
BB2:                                                                                                                                                                                                       
=>                                                                                                                                                                                                         
BB:                                                                                                                                                                                                        
    %t1 = icmp                                                                                                                                                                                             
    %t4 = add %t2, c                                                                                                                                                                                       
    %t3 = select i1 %t1, %t2, %t3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52073 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-07 08:52:29 +00:00
Evan Cheng
cce302fded Fix run line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52072 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-07 08:40:16 +00:00
Matthijs Kooijman
5e179a23e3 Restucture a part of the SimplifyCFG pass and include a testcase.
The SimplifyCFG pass looks at basic blocks that contain only phi nodes,
followed by an unconditional branch. In a lot of cases, such a block (BB) can
be merged into their successor (Succ).

This merging is performed by TryToSimplifyUncondBranchFromEmptyBlock. It does
this by taking all phi nodes in the succesor block Succ and expanding them to
include the predecessors of BB. Furthermore, any phi nodes in BB are moved to
Succ and expanded to include the predecessors of Succ as well.

Before attempting this merge, CanPropagatePredecessorsForPHIs checks to see if
all phi nodes can be properly merged. All functional changes are made to
this function, only comments were updated in
TryToSimplifyUncondBranchFromEmptyBlock.

In the original code, CanPropagatePredecessorsForPHIs looks quite convoluted
and more like stack of checks added to handle different kinds of situations
than a comprehensive check. In particular the first check in the function did
some value checking for the case that BB and Succ have a common predecessor,
while the last check in the function simply rejected all cases where BB and
Succ have a common predecessor. The first check was still useful in the case
that BB did not contain any phi nodes at all, though, so it was not completely
useless.

Now, CanPropagatePredecessorsForPHIs is restructured to to look a lot more
similar to the code that actually performs the merge. Both functions now look
at the same phi nodes in about the same order.  Any conflicts (phi nodes with
different values for the same source) that could arise from merging or moving
phi nodes are detected. If no conflicts are found, the merge can happen.

Apart from only restructuring the checks, two main changes in functionality
happened.

Firstly, the old code rejected blocks with common predecessors in most cases.
The new code performs some extra checks so common predecessors can be handled
in a lot of cases. Wherever common predecessors still pose problems, the
blocks are left untouched.

Secondly, the old code rejected the merge when values (phi nodes) from BB were
used in any other place than Succ. However, it does not seem that there is any
situation that would require this check. Even more, this can be proven.

Consider that BB is a block containing of a single phi node "%a" and a branch
to Succ. Now, since the definition of %a will dominate all of its uses, BB
will dominate all blocks that use %a. Furthermore, since the branch from BB to
Succ is unconditional, Succ will also dominate all uses of %a.

Now, assume that one predecessor of Succ is not dominated by BB (and thus not
dominated by Succ). Since at least one use of %a (but in reality all of them)
is reachable from Succ, you could end up at a use of %a without passing
through it's definition in BB (by coming from X through Succ). This is a
contradiction, meaning that our original assumption is wrong. Thus, all
predecessors of Succ must also be dominated by BB (and thus also by Succ).

This means that moving the phi node %a from BB to Succ does not pose any
problems when the two blocks are merged, and any use checks are not needed.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51478 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23 09:09:41 +00:00
Gabor Greif
f6cadc440c sabre brings to my attention that the 'tr' suffix is also obsolete
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51349 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-20 21:00:03 +00:00
Gabor Greif
722243bd40 Rename the last test with .llx extension to .ll, resolve duplicate test by 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-05-20 19:52:04 +00:00
Dan Gohman
fddaa3193c Update old-style syntax in some "not grep" tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50560 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-01 23:50:07 +00:00
Chris Lattner
ffba5821ee Fix PR2256, yet another miscompilation in simplifycfg of i
multiple return values.

Bill, please pull this into Tak.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50332 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-28 00:19:07 +00:00
Nick Lewycky
280a6e607d Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50265 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-25 16:53:59 +00:00
Chris Lattner
c9e495c534 Split some code out of the main SimplifyCFG loop into its own function.
Fix said code to handle merging return instructions together correctly
when handling multiple return values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50199 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-24 00:01:19 +00:00
Tanya Lattner
ce7d5db4d8 Upgrade tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48536 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19 05:39:35 +00:00
Tanya Lattner
f04d8d1593 Upgrade tests to not use llvm-upgrade.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48483 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18 03:45:45 +00:00
Dan Gohman
882d87d168 Check to see if a two-entry PHI block can be simplified
before trying to merge the block into its predecessors.
This allows two-entry-phi-return.ll to be simplified
into a single basic block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48252 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-11 21:53:06 +00:00
Dan Gohman
a8ab8938a7 Make this test more challenging to help it avoid being
optimized away before it tests what it is intended to test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48251 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-11 21:47:57 +00:00
Dan Gohman
43ca31e3dc Upgrade this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48207 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-11 02:19:59 +00:00
Tanya Lattner
ceca194c43 Remove llvm-upgrade and update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48137 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 07:21:50 +00:00
Nick Lewycky
9be3c97183 Turn unwind_to into "unwinds to".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48123 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 02:20:00 +00:00
Nick Lewycky
3f4cc3101e Firstly, having a BranchInst isn't exclusive with having an unwind_to.
Secondly, we have to check whether the branch is actually pointing to the block
with the unwind in it. We could have gotten here because of the unwind_to alone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48099 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 07:50:37 +00:00
Nick Lewycky
db96ae9607 A BB that unwind_to an "unwind" inst is that same as one that doesn't unwind_to
at all.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48096 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 07:36:38 +00:00
Nick Lewycky
6af31aab63 Update the inliner and simplifycfg to handle unwind_to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48086 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 05:10:13 +00:00
Chris Lattner
3d73bce2d0 don't hoist FP additions into unconditional adds + selects. This
could theoretically introduce a trap, but is also a performance issue.
This speeds up ptrdist/ks by 8%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45533 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-03 07:25:26 +00:00
Devang Patel
c49c08f747 Test -simplifycfg only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45389 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-28 22:59:48 +00:00
Devang Patel
01666bf74b If succ has succ itself as one of the predecessors then do
not merge current bb and succ even if bb's terminator is
unconditional branch to succ.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45305 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-22 01:32:53 +00:00
Duncan Sands
afa3b6da11 Add some convenience methods for querying attributes, and
use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28 17:07:01 +00:00
Duncan Sands
dc024674ff Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls.  This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll).  Hopefully
a bitcode guru (who might that be? :) ) will fix it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27 13:23:08 +00:00
Duncan Sands
73d4bb6676 Turn invokes of nounwind functions into ordinary calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44280 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-22 22:24:59 +00:00
Chris Lattner
1b12d8855d Implement PR1796 and Transforms/SimplifyCFG/noreturn-call.ll
by inserting unreachable after no-return calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44099 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14 06:19:25 +00:00
Chris Lattner
b42c8f7101 Implement PR1786 by iterating between dead cycle elimination
and simplifycfg in the rare cases when it is needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44044 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13 07:32:38 +00:00
Dan Gohman
28beeeac4d Convert tests using "| wc -l | grep ..." to use the count script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41097 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15 13:36:28 +00:00
John Criswell
e644ef7b09 Convert .cvsignore files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29 16:35:07 +00:00
Reid Spencer
4f859aa532 For PR1146:
Make ParamAttrsList objects unique. You can no longer directly create or
destroy them but instead must go through the ParamAttrsList::get()
interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 05:46:44 +00:00
Reid Spencer
9aafdcf20d For PR1319:
Upgrade to use new Tcl exec based test harness. This exposes 3 bugs that
were previously not being reported:
test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll
test/Transforms/GlobalOpt/memset.ll
test/Transforms/IndVarsSimplify/exit_value_tests.llx


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36065 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 09:21:47 +00:00
Reid Spencer
0f5aed5648 Make the llvm-runtest function much more amenable by eliminating all the
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-04-11 19:56:59 +00:00
Reid Spencer
f2f882015e Can't grep for bool any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33178 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-13 04:36:22 +00:00
Reid Spencer
6a21d848b6 Remove a manual renaming of a variable that was introduced before
llvm-upgrade could properly handle collapsed type planes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-04 16:46:46 +00:00
Reid Spencer
eacb7020ec For PR950:
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-31 06:02:00 +00:00
Reid Spencer
73e70822ae Update tests that need to be run through llvm-upgrade. This is necessary
for upcoming changes to the llvm assembly grammar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32768 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-29 20:01:32 +00:00
Reid Spencer
e4d87aa2de For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-23 06:05:41 +00:00
Chris Lattner
c80dfba667 fix buggy testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32626 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-16 02:29:22 +00:00
Reid Spencer
69ccadd753 Use the llvm-upgrade program to upgrade llvm assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32115 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-02 04:23:10 +00:00
Reid Spencer
e5d4efa63e Promote GEP ubyte indices to uint. Backwards compatibility for 1.2 and
older features will be dropped soon and these test cases must not rely
on the upgrade capability.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31896 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-23 15:14:52 +00:00
Chris Lattner
e6cc288941 converting massive blocks of phis into selects like this is silly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31852 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 19:17:52 +00:00
Chris Lattner
7c94454c56 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31283 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 21:20:56 +00:00
Chris Lattner
8a53688a13 new testcase for PR957
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31060 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-20 00:41:31 +00:00
Chris Lattner
006f2d0afd new testcase for pr867
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29514 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 21:39:41 +00:00
Chris Lattner
b2035f2287 TEstcase that makes simplifycfg infloop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28757 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-12 20:17:44 +00:00
Tanya Lattner
9727555859 Added the ability to xfail based on llvmgcc version
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27635 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-12 21:57:40 +00:00
Reid Spencer
2676f83776 Tired of wading through cvs's list ? files that are generated when building
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
2006-03-23 23:41:57 +00:00
Chris Lattner
6a9f57c7ef new testcase that crashes simplifycfg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26274 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-18 00:32:44 +00:00
Chris Lattner
9b08fec8bb expand testcase, which has been in my tree for a while now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24582 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-03 18:26:41 +00:00
Chris Lattner
9e6924fc0f new testcase, miscompiled by simplifycfg. This has been distilled from Ptrdist/bc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24580 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-03 18:25:32 +00:00
Chris Lattner
457029c244 new testcase for PR635
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23615 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03 23:42:54 +00:00
Chris Lattner
9a82a3ccac new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23409 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-23 18:43:57 +00:00
Chris Lattner
055135d1c1 make this test harder: add a case where instructions are in the bb to be
threaded over


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23396 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-20 01:43:41 +00:00
Chris Lattner
ecd7b6d110 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23394 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-20 00:41:55 +00:00
Chris Lattner
b6e2b7e4cd new testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23390 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-19 23:48:04 +00:00
Chris Lattner
82e6ef3ec3 Testcase that used to crash simplifycfg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22622 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-03 18:01:07 +00:00
Chris Lattner
969c88e817 un-xfail this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22614 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-03 00:58:44 +00:00
Chris Lattner
d970ff025d This fails for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22608 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-03 00:10:28 +00:00
Chris Lattner
1bc0f735c9 New testcase that caused simplifycfg to crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22583 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-02 03:23:03 +00:00
Chris Lattner
bff44407e8 new testcase for PR584
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22231 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 01:45:03 +00:00
Chris Lattner
07b5c9d68f New testcase that crashes simplifycfg, identified accidentally by JohnMC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22157 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-20 22:19:34 +00:00
Chris Lattner
edcee6f5fd testcase I've had in my tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21832 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-09 21:21:10 +00:00
Chris Lattner
d802347a2e new testcase for a simple optimization that simplifycfg is about to do.
All CFG edges to DEAD should be eliminated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20299 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 06:15:27 +00:00
Chris Lattner
90970609f2 add another testcase to make sure it gets turned into a switch (answer: yes it does)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20291 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24 02:13:50 +00:00
Chris Lattner
72a406eb14 Add new test to make sure simplifycfg doesn't leave around trivially
dead instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19211 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:00:56 +00:00
Chris Lattner
2480535c1f Check in the right test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18767 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-10 17:43:43 +00:00
Chris Lattner
16483e50e2 New testcase for a bug exposed by the ipsccp pass, causing dparser to fail
last night.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18765 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-10 17:41:43 +00:00
Chris Lattner
8cca1a7cbc New testcase for simplifycfg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18367 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-30 00:31:16 +00:00
Tanya Lattner
c8c1f12778 Adding srcdir arg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18020 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-19 22:45:25 +00:00
Tanya Lattner
28b372f1d3 Adding subdirectory dg.exp files in order to be able to use dejagnu to only run specific tests (located in some subdirectory of Regression)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17712 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-13 23:00:45 +00:00
Chris Lattner
d7e30973cd New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17115 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-18 04:06:41 +00:00
Chris Lattner
1c7efba2bd When converting phi nodes into select instructions, we shouldn't promote PHI
nodes unless we KNOW that we are able to promote all of them.  In this case
promoting the phi to a select is silly because we will always have to do the
call conditionally.  As such, select promotion is actually a pessimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16972 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-14 05:12:50 +00:00
Chris Lattner
c6c9db2fd7 test that unconditional branches to unwinds are always eliminated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15021 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 01:17:19 +00:00
Chris Lattner
f380445185 Fix testcase. For some reason this was failing only with a release build and
not with a debug build?  Rather testrunner only caught it in that case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14514 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-01 04:09:14 +00:00
Chris Lattner
dcf3a6b124 Fix a test that was "broken" by new optimizations. The transformation we
are doing is certainly correct, its just that we didn't have the capability
to do it when the testcase was written (no select instr)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13799 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 23:51:29 +00:00
Chris Lattner
470221cfc0 New testcase:
Turn "if (A < B && B < C)" into "if (A < B & B < C)"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13310 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-01 23:35:21 +00:00
Chris Lattner
be8d170c83 New testcase for case that simplifycfg should catch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13305 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-01 22:36:24 +00:00
Chris Lattner
4f21c174aa Simplify cfg now eliminates all of the branches in this testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12803 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-09 23:50:29 +00:00
Chris Lattner
512c2481b1 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12616 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-02 18:12:49 +00:00
Chris Lattner
4971b722ff Oops, actually USE the previously computed value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12547 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:45:39 +00:00
Chris Lattner
5dd784a8ca Test general value/value selection which we can do now that we use the
select instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12546 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:45:11 +00:00
John Criswell
2942e6356b Modify test to use the %t substition (temporary name). This is available
in the QMTest Testrunner tests.
Please note that putting output files in the Output directory no longer
works, as QMTest does not build Output directories anymore (nor does the
test run in a separate subdirectory, anyway).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12466 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-17 02:31:29 +00:00
Chris Lattner
39bd69aa55 Add a testcase for switch instruction induction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11965 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-28 21:30:39 +00:00
Chris Lattner
2189a76024 New testcase. Switch instructions that go to switch instructions should be
merged.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11796 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 07:21:09 +00:00
Chris Lattner
d1eaebef49 The simplifycfg pass should be able to turn stuff like:
if (X == 4 || X == 7)
and
  if (X != 4 && X != 7)

into switch instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11791 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 05:34:44 +00:00
Chris Lattner
5ea27d820a New testcase, details in the comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11495 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-16 06:35:19 +00:00
Chris Lattner
54636af39d New feature testcase for simplifycfg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11306 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-11 03:35:04 +00:00
Misha Brukman
e78760e179 Renamed as' => llvm-as', dis' => llvm-dis', link' => llvm-link'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8558 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-16 15:29:54 +00:00
John Criswell
473741930e Removing Makefiles. Regression tests are now run by QMTest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8548 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 20:21:38 +00:00
Chris Lattner
cd98c72561 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8125 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 17:58:24 +00:00
Chris Lattner
2231d5892b Add a new switch folding testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8092 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-23 23:17:59 +00:00
Chris Lattner
09864a1ef0 New testcase to ensure that switch folding happens correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7922 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 20:19:31 +00:00
Chris Lattner
f0cd835784 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7920 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 19:37:57 +00:00
Chris Lattner
128cf79bcc New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7918 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 19:29:34 +00:00
Chris Lattner
5d6bdae118 new testcases that simplifycfg breaks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7598 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 16:11:36 +00:00
Chris Lattner
d808e45658 Eliminate explicit control flow in tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6961 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28 23:13:12 +00:00
Chris Lattner
5db057fbb0 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5721 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 17:42:55 +00:00
Chris Lattner
a1040199e4 Add new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5701 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 21:34:35 +00:00
Chris Lattner
ceb536eda3 New testcase for feature simplifycfg should handle
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5698 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 20:35:24 +00:00
Chris Lattner
a8bda21c8d Add testcase for new feature for simplifycfg pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5697 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 20:22:50 +00:00
Chris Lattner
04b9d2903e New feature test for something we have done for a long time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3914 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 16:13:20 +00:00
Chris Lattner
d7490bcf9a New testcase that causes SimplifyCFG to assert out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3912 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 16:02:44 +00:00
Chris Lattner
6eea01ed8e Hrm, testcase was checking the wrong pass. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3126 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 21:12:20 +00:00
Chris Lattner
578cf90040 Testcase for unimplemented feature
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2766 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-24 17:45:37 +00:00
Chris Lattner
4a4e39d647 Update run line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2693 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-21 19:33:17 +00:00
Chris Lattner
2f3ee642a8 This testcase was very broken! The block could not be merged because then
there would be a broken PHI node


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2692 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-21 19:32:58 +00:00
Chris Lattner
58e06e7393 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2691 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-21 19:22:10 +00:00
Chris Lattner
c3a53f9aa8 Testcase for missed merge opportunity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2477 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 03:11:32 +00:00
Chris Lattner
2077ffab85 Initial testcases for CFG simplify (which is part of DCE for now)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2466 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 02:37:38 +00:00