Chris Lattner
63602fb868
Do not CopyFromReg physregs for live-in values. Instead, create a vreg for
...
each live in, and copy the regs from the vregs. As the very first thing we
do in the function, insert copies from the pregs to the vregs. This fixes
problems where the token chain of CopyFromReg was not enough to allow reordering
of the copyfromreg nodes and other unchained nodes (e.g. div, which clobbers
eax on intel).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21932 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:38:09 +00:00
Chris Lattner
405ef9e28d
Emit function entry code after lowering hte arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21931 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:33:32 +00:00
Chris Lattner
3aa7832c82
Allow targets to emit code into the entry block of each function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21930 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:23:21 +00:00
Chris Lattner
cc13b76246
add a new method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21929 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:23:03 +00:00
Chris Lattner
08b22ecc88
calling a function with the wrong CC is undefined, turn it into an unreachable
...
instruction. This is useful for catching optimizers that don't preserve
calling conventions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21928 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:09:09 +00:00
Chris Lattner
712ad0c36d
allow a virtual register to be associated with live-in values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21927 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:08:07 +00:00
Reid Spencer
fe07581d78
Make sure that decompression checks for the case that bzip2 returns
...
BZ_OK (meaning more data is expected) but there is no more input data. In
this case, the input file is probably truncated. Generate an exception that
indicates this case when its detected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21926 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:05:37 +00:00
Chris Lattner
efd9168eae
When lowering invokes to calls, amke sure to preserve the calling conv. This
...
fixes Ptrdist/anagram with x86 llcbeta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21925 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 06:27:02 +00:00
Chris Lattner
1381dd8a6e
Prefer int 0 instead of long 0 for GEP arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21924 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 06:10:12 +00:00
Chris Lattner
eb516e7f0a
Fix a problem that nate reduced for me.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21923 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 05:17:00 +00:00
Chris Lattner
9530ddcc60
rename variables and functions to match renamed DAG nodes. Bonus feature:
...
I can actually remember which one is which now!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21922 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 05:09:11 +00:00
Chris Lattner
bb9d6fd8d9
disable this test for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21920 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 04:51:58 +00:00
Chris Lattner
66de05b606
do not call expandop on the same value more than once. This fixes
...
X86/2004-02-22-Casts.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21919 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 04:45:13 +00:00
Chris Lattner
3013138bd3
add a correct run line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21918 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 04:20:57 +00:00
Chris Lattner
a364fa126a
fix a bad typeo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21917 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 23:51:40 +00:00
Chris Lattner
128b52d3d7
update comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21916 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 23:24:44 +00:00
Chris Lattner
16cd04d26c
rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21915 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 23:24:06 +00:00
Chris Lattner
b794107416
reg test
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21914 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 23:09:04 +00:00
Chris Lattner
c6f4181923
Add a new -enable-x86-fastcc option that enables passing the first
...
two integer values in registers for the fastcc calling conv.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21912 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 23:06:28 +00:00
Misha Brukman
19098e58a4
* Remove reference to llvm-fefw
...
* Fix copyright line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21910 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 22:15:34 +00:00
Misha Brukman
e8867983d5
llvm-fefw doesn't exist (yet)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21907 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 21:56:03 +00:00
Misha Brukman
5ec2ae6015
Remove extraneous `U ' in copyright line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21906 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 21:49:11 +00:00
Misha Brukman
2bb550864d
* Fix wording of the warning
...
* Add autoindent, smartindent, and smarttab options to the file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21905 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 21:41:48 +00:00
Misha Brukman
f1dc555329
Remove extraneous colons after program names for consistency
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21904 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 21:39:01 +00:00
John Criswell
b0aad7a731
Shameless update of copyright years.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21903 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 21:25:32 +00:00
John Criswell
32b30a3c23
Fix this test on Solaris.
...
Solaris grep is more traditional and (AFAIK) does not support regexs.
Also, single quotes should disable all shell interpretation, so no
backslashes should be needed (and, in fact, keep Solaris from working).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21902 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 21:06:05 +00:00
Chris Lattner
b15a8f5f8c
LowerCallTo now takes the cc to use
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21901 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 19:57:08 +00:00
Chris Lattner
9092fa310c
Pass calling convention to use into lower call to
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21900 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 19:56:57 +00:00
Chris Lattner
c57f682113
Pass in Calling Convention to use into LowerCallTo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21899 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 19:56:45 +00:00
Chris Lattner
6649418598
Enable pattern isel by default
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21898 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 19:56:09 +00:00
Chris Lattner
3becf2026b
fix expansion of ct[lt]z nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21896 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 19:27:51 +00:00
Chris Lattner
39a8f33630
Expand 64-bit ctlz/cttz nodes for 32-bit targets
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21895 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 19:05:01 +00:00
Chris Lattner
383203b003
Fix uint->fp casts on PPC, allowing UnitTests/2005-05-12-Int64ToFP to
...
work on it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21894 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 18:52:34 +00:00
John Criswell
dae2e9383b
Correct a detail with the alloca instruction.
...
Functions do not exit with invoke; they exit with unwind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21893 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 16:55:34 +00:00
Chris Lattner
45982dad53
Allow something to be legalized multiple times. This can be used to reduce
...
legalization iteration
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21892 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 16:53:42 +00:00
John Criswell
e4c57cc72b
Fixed some typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21891 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 16:52:32 +00:00
Chris Lattner
13689e2009
Oops, don't do this after we figure out where to insert the call chains.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21890 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 07:00:44 +00:00
Chris Lattner
44d105b7fa
Make sure to expand all nodes, avoiding unintentional node duplication.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21889 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 06:54:21 +00:00
Chris Lattner
6980d8295f
handle a common case generated by the uint64 -> FP code path better
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21888 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 06:27:02 +00:00
Chris Lattner
e131e5b81e
add fixme
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21887 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 06:04:14 +00:00
Chris Lattner
4b3141d324
Fix a really horrible problem that causes the JIT to miscompile any program
...
that use 64-bit integers on 32-bit hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21886 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 06:01:28 +00:00
Chris Lattner
b9fa3bc8f3
Fix a problem where early legalization can cause token chain problems.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21885 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 04:49:08 +00:00
Chris Lattner
9bce0f92c3
These targets don't like setcc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21884 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 02:06:00 +00:00
Chris Lattner
39d7f8f338
Add a little hook
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21883 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 02:02:21 +00:00
Chris Lattner
88de6e77bf
Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -C
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21882 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 00:17:04 +00:00
Nate Begeman
e066d68eb4
Add testcase for legalizing ISD::CTTZ efficiently. On PPC, ctlz(int) is
...
now codegen'd as this:
addi r2, r3, -1
andc r2, r2, r3
cntlzw r2, r2
subfic r3, r2, 32
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21881 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-11 23:45:54 +00:00
Nate Begeman
d7c4a4a6c0
Necessary changes to codegen cttz efficiently on PowerPC
...
1. Teach LegalizeDAG how to better legalize CTTZ if the target doesn't have
CTPOP, but does have CTLZ
2. Teach PPC32 how to do sub x, const -> add x, -const for valid consts
3. Teach PPC32 how to do and (xor a, -1) b -> andc b, a
4. Teach PPC32 that ISD::CTLZ -> PPC::CNTLZW
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21880 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-11 23:43:56 +00:00
John Criswell
a65640edd0
Regression test for PR#563.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21879 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-11 21:47:35 +00:00
Tanya Lattner
d977095838
Fixed issue that broke ssa.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21878 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-11 21:45:03 +00:00
Chris Lattner
4548a0ed32
fix some GCC 4 warnings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21877 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-11 21:40:40 +00:00