Commit Graph

109 Commits

Author SHA1 Message Date
Dan Gohman
ae3a0be92e Split the Add, Sub, and Mul instruction opcodes into separate
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.

For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.

This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04 22:49:04 +00:00
Nick Lewycky
e3f1fb1ee8 Use Operands.data() instead of &Operands[0] where Operands is a potentially
empty SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 04:08:10 +00:00
Chris Lattner
3aa8f6bc11 adjust for asmprinter change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01 00:25:46 +00:00
Chris Lattner
d9d46241ec Fix PR3325, a miscompilation of invokes by IPSCCP. Patch by Jay Foad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62244 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-14 21:01:16 +00:00
Dan Gohman
2edeb63ece Fix SCCP's handling of struct value loads and stores. SCCP doesn't
track individual leaf values in such cases, so it needs to treat
struct values as normal values in this case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54760 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-13 21:22:48 +00:00
Dan Gohman
fc74abfba5 Enable first-class aggregates support.
Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.

The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23 00:34:11 +00:00
Chris Lattner
60301608f8 Fix PR2358 by resolving calls with undef arguments to overdefined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51535 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-24 03:59:33 +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
Owen Anderson
ce12a2b71a Use loop deletion instead of ADCE in these tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51180 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:33:37 +00:00
Chris Lattner
c6ee00b8ee Rewrite multiple return value handling in SCCP. Before, the -sccp pass
would turn every getresult instruction into undef.  This helps with
rdar://5778210


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50140 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23 05:38:20 +00:00
Chris Lattner
525af20937 make this test more interesting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50128 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23 03:49:32 +00:00
Tanya Lattner
f396cc8730 Upgrade tests to not use llvm-upgrade.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48529 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19 04:14:49 +00:00
Devang Patel
7c490d4104 Initial multiple return values support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-11 05:46:42 +00:00
Chris Lattner
05bb789430 Fix PR1938 by forcing the code that uses an undefined value to branch one
way or the other.  Rewriting the code itself prevents subsequent analysis
passes from making contradictory conclusions about the code that could 
cause an infeasible path to be made feasible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46427 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28 00:32:30 +00:00
Dale Johannesen
c2ec2baf3d Change all floating constants that are not exactly
representable to use hex format.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41722 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-05 17:50:36 +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
Devang Patel
d5005ccac4 New test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37184 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-17 22:05:20 +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
c6b9efabee Add the SCCP regression tests for APInt expressions. These test cases
turned up some regressions that have since been fixed. We don't want to
loose the regression tests.

Test cases by Guoling Han.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35974 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-13 22:33:10 +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
9d6565a5b1 For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:26:10 +00:00
Reid Spencer
737ec5130e For PR1043:
Bye, Bye Booly. Remove the use of the bool type from non-upgraded test
cases and from grep expressions. The parser doesn't accept it and the
asm writer doesn't produce it any more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33183 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-13 05:06:52 +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
Chris Lattner
d407f41413 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32714 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-20 06:20:23 +00:00
Devang Patel
67a821d9a3 SCCP does not handle Packed Type properly. Disable Packed Type handling
for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32208 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 23:54:59 +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
e285d59ee6 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31131 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 18:54:35 +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
d27460f291 new testcase for more interesting select sccp cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26048 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 02:37:40 +00:00
Chris Lattner
5fa8707821 fix buggy test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21937 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 15:51:31 +00:00
Chris Lattner
1825e30dec Fix this test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18900 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 17:53:11 +00:00
Chris Lattner
e0e50dbb9f New testcase. If one side of and/or is known to be 0/-1, it doesn't matter
if the other side is overdefined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18806 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-11 23:14:40 +00:00
Chris Lattner
5df6895f75 Update test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18801 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-11 17:13:19 +00:00
Chris Lattner
0982145d85 New testcase that ipsccp should handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18789 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-11 05:14:55 +00:00
Chris Lattner
9b07c66501 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18780 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-10 22:28:49 +00:00
Chris Lattner
6e5fcf1898 New testcase that SCCP miscompiles. Luckily this is extremely unlikely to
happen in practice, but IP-SCCP can trigger it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18773 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-10 20:10:23 +00:00
Chris Lattner
41c6861609 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18750 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-10 07:54:51 +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
Chris Lattner
154113b78c New testcase for recent patch to SCCP, thanks to Nate Begeman for pointing
out this recent regression


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17898 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-16 16:39:20 +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
3d78b23d24 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12920 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:43:33 +00:00
Chris Lattner
debcbd0a46 Test to make sure we can SCCP load instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10766 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 04:28:32 +00:00
Chris Lattner
ff2ab4db20 New testcase, allow folding of binary operators that use PHI nodes, as long
as the result of the binary operator is always constant.  This does not require
the PHI itself to be constant though.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10762 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 03:57:00 +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
5464da982f New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8151 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-27 01:05:19 +00:00
Chris Lattner
50e8682f28 Remove explicit control flow through the use of the 'not' script
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6965 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28 23:23:34 +00:00
Chris Lattner
1e3af1ef87 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6882 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-24 20:29:36 +00:00
Chris Lattner
eabb4950bd New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3554 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 23:22:15 +00:00
Chris Lattner
bec7dcad14 Must run cfgsimplify to eliminate dead blocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2706 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-22 15:49:14 +00:00
Chris Lattner
53eaf1e431 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2705 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-21 22:23:38 +00:00
Chris Lattner
7add8bdc08 New testcase for bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2670 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-20 20:48:24 +00:00
Chris Lattner
46d51f7ba8 Add const prop pass to eliminate dead branches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2456 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-03 19:57:16 +00:00
Chris Lattner
a1ab959de3 More testcases for SCCP
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2444 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-02 20:41:39 +00:00
Chris Lattner
f36c34f625 First testcase for SCCP pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2440 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-02 20:18:37 +00:00