18971 Commits

Author SHA1 Message Date
Chris Lattner
adde8b1a71 Use target-specific nodes for calls. This allows the fastcc code to not have
to do ugly hackery to avoid emitting code like this:

   call foo
   mov vreg, EAX
   adjcallstackup ...

If foo is a fastcc call and if vreg gets spilled, we might end up with this:

   call foo
   mov [ESP+offset], EAX     ;; Offset doesn't consider the 12!
   sub ESP, 12

Which is bad.  The previous hacky code to deal with this was A) gross B) not
good enough.  In particular, it could miss cases and emit the bad code above.
Now we always emit this:

   call foo
   adjcallstackup ...
   mov vreg, EAX

directly.

This makes fastcc with callees poping the stack work much better.  Next
stop (finally!) really is tail calls.

llvm-svn: 22021
2005-05-14 08:48:15 +00:00
Chris Lattner
052759b78c allow token chain at start or end of node
llvm-svn: 22020
2005-05-14 08:34:53 +00:00
Chris Lattner
d9e36f94bb remove special case hacks for readport/readio from the binary operator
codepath

llvm-svn: 22019
2005-05-14 07:45:46 +00:00
Chris Lattner
d1d8fbee2d Implement fixme's by memoizing nodes.
llvm-svn: 22018
2005-05-14 07:42:29 +00:00
Chris Lattner
b9ccf966b8 add a new map
llvm-svn: 22017
2005-05-14 07:36:02 +00:00
Chris Lattner
ac7d55f114 Turn this into a wrapper for a simpler version of getNode.
llvm-svn: 22016
2005-05-14 07:32:14 +00:00
Chris Lattner
a035798c4b Eliminate special purpose hacks for dynamic_stack_alloc.
llvm-svn: 22015
2005-05-14 07:29:57 +00:00
Chris Lattner
b94e243d14 Use the general mechanism for creating multi-value nodes instead of using
special case hacks.

llvm-svn: 22014
2005-05-14 07:25:05 +00:00
Chris Lattner
918a411976 Ensure these casts are done with the hardware fildll instruction
llvm-svn: 22013
2005-05-14 07:09:25 +00:00
Chris Lattner
c0c6680744 use a target-specific node and custom expander to lower long->FP to FILD64m.
This should fix some missing symbols problems on BSD and improve performance
of programs that use that operation.

llvm-svn: 22012
2005-05-14 06:52:07 +00:00
Chris Lattner
ad411081fb Wrap long line, actually add node to the graph.
llvm-svn: 22011
2005-05-14 06:42:57 +00:00
Chris Lattner
6f7b63c7d7 legalize target-specific operations
llvm-svn: 22010
2005-05-14 06:34:48 +00:00
Chris Lattner
1afb5ae575 add a getNode() version that allows construction of any node type.
llvm-svn: 22009
2005-05-14 06:20:26 +00:00
Chris Lattner
1032d777e6 Add a way to construct an arbitrary node, cleanly.
llvm-svn: 22008
2005-05-14 06:20:08 +00:00
Chris Lattner
3afe2d8d83 add accessors
llvm-svn: 22007
2005-05-14 06:19:11 +00:00
Reid Spencer
a684a28474 Some minor adjustments for the 1.5 release.
llvm-svn: 22006
2005-05-14 05:52:07 +00:00
Chris Lattner
ae59fdbd99 Pass the dag into LowerOperation
llvm-svn: 22005
2005-05-14 05:51:05 +00:00
Chris Lattner
6e81a4090f LowerOperation takes a dag
llvm-svn: 22004
2005-05-14 05:50:48 +00:00
Duraid Madina
dfff1c5830 add a bit about the known problems on IA64
llvm-svn: 22003
2005-05-14 05:48:13 +00:00
Chris Lattner
369427683d Print the symbolic register name in a register allocator debug dump.
llvm-svn: 22002
2005-05-14 05:34:15 +00:00
Chris Lattner
1202c26d6e Allow targets to have a custom int64->fp expander if desired
llvm-svn: 22001
2005-05-14 05:33:54 +00:00
Chris Lattner
db4f239e62 this passes
llvm-svn: 22000
2005-05-14 02:35:38 +00:00
Chris Lattner
62e61f2c64 Fix this
llvm-svn: 21999
2005-05-14 02:33:20 +00:00
Chris Lattner
5c18556246 minor changes
llvm-svn: 21998
2005-05-14 01:30:15 +00:00
Chris Lattner
cbaf90f250 user ops are not encoded in the bc format
llvm-svn: 21997
2005-05-14 01:26:46 +00:00
Reid Spencer
0db5ad32d1 Document the pseudo-instruction opcodes in opcode range 56-63. These are
used to support things like volatile load/store, tail calls, and calling
conventions without reserving space for the additional information.

llvm-svn: 21996
2005-05-14 00:06:06 +00:00
Chris Lattner
2210f7d6e9 Make sure the start of the arg area and the end (after the RA is pushed)
is always 8-byte aligned for fastcc

llvm-svn: 21995
2005-05-13 23:49:10 +00:00
Chris Lattner
4a2129161d fix the assertion
llvm-svn: 21994
2005-05-13 23:35:47 +00:00
Chris Lattner
2163eeaa67 Align doubles on 8-byte boundaries if possible.
llvm-svn: 21993
2005-05-13 23:14:17 +00:00
Chris Lattner
d9dd5bb798 print stack object alignment in -print-machineinstr dumps
llvm-svn: 21992
2005-05-13 22:54:44 +00:00
Chris Lattner
1634435c77 fix typo
llvm-svn: 21991
2005-05-13 22:46:57 +00:00
John Criswell
fe7aeb01ec Minor fixup of typos.
llvm-svn: 21990
2005-05-13 22:25:59 +00:00
Chris Lattner
923a239d83 new testcase
llvm-svn: 21989
2005-05-13 22:15:26 +00:00
Chris Lattner
0d4b08e470 Fix the problems with callee popped argument lists
llvm-svn: 21988
2005-05-13 22:13:49 +00:00
John Criswell
d0f0f612db Removed PPC Linux support, as no one seems to have used it yet.
llvm-svn: 21987
2005-05-13 21:55:49 +00:00
Chris Lattner
e667c34ef1 Don't emit SAR X, 0 in the case of sdiv Y, 2
llvm-svn: 21986
2005-05-13 21:50:27 +00:00
Chris Lattner
fc630bb4f0 Fix UnitTests/2005-05-13-SDivTwo.c
llvm-svn: 21985
2005-05-13 21:48:20 +00:00
Chris Lattner
62593e4e66 switch to having the callee pop stack operands for fastcc. This is currently buggy
do not use

llvm-svn: 21984
2005-05-13 21:44:04 +00:00
Chris Lattner
a3e57bd844 Tolerate instrs with extra args
llvm-svn: 21982
2005-05-13 21:07:15 +00:00
John Criswell
0877908e67 Add a note about SPARC V8.
llvm-svn: 21981
2005-05-13 20:54:44 +00:00
Chris Lattner
e9944b033d allow RETI
llvm-svn: 21980
2005-05-13 20:46:35 +00:00
Chris Lattner
3436cabb50 add support for fastcc and friends
llvm-svn: 21979
2005-05-13 20:40:52 +00:00
John Criswell
d0593c3fdb Minor fixes.
llvm-svn: 21978
2005-05-13 20:38:44 +00:00
Chris Lattner
93007dda7d treat TAILCALL nodes identically to CALL nodes
llvm-svn: 21977
2005-05-13 20:29:26 +00:00
Chris Lattner
2c9d871f9b Build TAILCALL nodes in LowerCallTo, treat them like normal calls everywhere.
llvm-svn: 21976
2005-05-13 20:29:13 +00:00
John Criswell
3a95e6476b Added some missing platforms.
Fixed some wording to be more accurate (I hope).

llvm-svn: 21975
2005-05-13 20:28:15 +00:00
John Criswell
d7464e0f25 More typo and wording fixes.
llvm-svn: 21974
2005-05-13 20:25:49 +00:00
Chris Lattner
44408faaa0 Add reassociation, minor cleanups.
llvm-svn: 21973
2005-05-13 20:18:49 +00:00
Chris Lattner
ea7e5e50d7 close off B< tag
llvm-svn: 21972
2005-05-13 20:14:06 +00:00
Chris Lattner
4fbf9e8af4 remove htmlisms
llvm-svn: 21971
2005-05-13 20:13:39 +00:00