Dan Gohman
1b18b91296
Add code to call FastISel, and a command-line option to enable it.
...
llvm-svn: 55015
2008-08-19 22:33:34 +00:00
Dan Gohman
25efe2087b
Support unconditional fall-through branches in FastISel.
...
llvm-svn: 55014
2008-08-19 22:31:46 +00:00
Owen Anderson
5325218d4b
Allow the fast-path spilling code to attempt folding, but still leaving out remat and splitting.
...
llvm-svn: 55012
2008-08-19 22:12:11 +00:00
Dan Gohman
b1ba73eeed
Instantiate FastISel for X86.
...
llvm-svn: 55011
2008-08-19 21:45:35 +00:00
Dan Gohman
36e732b8fc
The X86 target will soon have an implementation of createFastISel.
...
llvm-svn: 55010
2008-08-19 21:32:53 +00:00
Dan Gohman
08c860eb56
Add a TargetLowering hook for creating a FastISel object.
...
llvm-svn: 55009
2008-08-19 21:26:29 +00:00
Dan Gohman
ebba5dd8be
For now, restrict FastISel to instructions that only involve one
...
register class.
llvm-svn: 55008
2008-08-19 20:58:14 +00:00
Dan Gohman
69eb9fb38e
Factor out the code to scan an instruction's operands into a
...
helper function.
llvm-svn: 55007
2008-08-19 20:56:30 +00:00
Dan Gohman
7a23fc0fb0
Use the BuildMI overload that sets up a destination register
...
instead of the one that doesn't and then adding it manually.
llvm-svn: 55006
2008-08-19 20:46:54 +00:00
Dan Gohman
564f3c6773
Handle the case where target-specific fastisel code doesn't have
...
a desired opcode.
llvm-svn: 55005
2008-08-19 20:43:22 +00:00
Dan Gohman
85448ceb8d
Add more comments.
...
llvm-svn: 55004
2008-08-19 20:36:33 +00:00
Dan Gohman
b60099089a
Fix indentation in FastISel tablegen-emitted code.
...
llvm-svn: 55003
2008-08-19 20:31:38 +00:00
Dan Gohman
a8dfd17e4e
Add more checking to filter out more kinds of things that
...
FastISel doesn't support yet.
llvm-svn: 55002
2008-08-19 20:30:54 +00:00
Chris Lattner
48d4303630
remove reference to really really old tree
...
llvm-svn: 55001
2008-08-19 20:17:48 +00:00
Owen Anderson
b110ebd37d
The fast-path still needs to set kill markers and spill/restore points as appropriate.
...
With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with
the SimpleSpiller and this fast-path enabled.
llvm-svn: 55000
2008-08-19 20:09:52 +00:00
Dale Johannesen
15b76de064
Add support for 8 and 16 bit forms of __sync
...
builtins on X86.
Change "lock" instructions to be on a separate line.
This is needed to work around a bug in the Darwin
assembler.
llvm-svn: 54999
2008-08-19 18:47:28 +00:00
Dan Gohman
1701d4ef7e
80 columns.
...
llvm-svn: 54998
2008-08-19 18:07:49 +00:00
Dan Gohman
3a57ef9668
Add a few doxygen comments.
...
llvm-svn: 54997
2008-08-19 18:06:12 +00:00
Dan Gohman
fbc4410ada
Remove an unneeded #include.
...
llvm-svn: 54996
2008-08-19 17:53:16 +00:00
Gordon Henriksen
b7b9342e24
Delete a dead field.
...
llvm-svn: 54995
2008-08-19 17:09:26 +00:00
Gordon Henriksen
c4e022d917
[PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata.
...
llvm-svn: 54994
2008-08-19 17:06:35 +00:00
Nicolas Geoffray
2f08e00f01
Update the JIT exception writer to better mimic the codegen exception writer.
...
Also skip indirect encoding for platforms that ask for one: we direclty
write an address, not a pointer to the address.
llvm-svn: 54987
2008-08-19 14:48:14 +00:00
Chris Lattner
31ad910029
add a note
...
llvm-svn: 54985
2008-08-19 06:22:16 +00:00
Chris Lattner
2b6a31501e
more cleanups, random methods shouldn't return ostreams.
...
llvm-svn: 54984
2008-08-19 05:26:17 +00:00
Chris Lattner
8cc806c9be
more cleanup, eliminate getLLVMName when printing out
...
type names at the top of the file.
llvm-svn: 54983
2008-08-19 05:16:28 +00:00
Chris Lattner
b665916d8d
random cleanups, factor some printing code for linkage and visibility
...
llvm-svn: 54982
2008-08-19 05:06:27 +00:00
Chris Lattner
6df4ed8bfd
Change WriteTypeSymbolic/WriteAsOperand to return void instead of
...
an ostream, which is just weird.
Rename SC_DEBUG -> ST_DEBUG
Remove static indentation strangeness from WriteConstantInt. This makes it
so that large structs are not broken down and printed on multiple lines. If
there is demand for this to return, there are better ways to implement this.
llvm-svn: 54981
2008-08-19 04:47:09 +00:00
Chris Lattner
b4cfc1a85e
whitespace cleanup
...
llvm-svn: 54980
2008-08-19 04:45:47 +00:00
Chris Lattner
b5e0d71a07
don't use the result of WriteAsOperand
...
llvm-svn: 54979
2008-08-19 04:45:19 +00:00
Chris Lattner
9f588f11f4
don't use the result of WriteTypeSymbolic or WriteAsOperand.
...
llvm-svn: 54978
2008-08-19 04:44:30 +00:00
Chris Lattner
7009680216
Don't use the result of WriteAsOperand or WriteTypeSymbolic.
...
llvm-svn: 54977
2008-08-19 04:42:37 +00:00
Chris Lattner
50a2b09df9
rearrange code and make more legible.
...
llvm-svn: 54976
2008-08-19 04:36:02 +00:00
Chris Lattner
de5c9e9be5
put SlotTracker in an anon namespace since it is private.
...
llvm-svn: 54975
2008-08-19 04:28:07 +00:00
Chris Lattner
c6e031668d
Reid had to call this class "slot machine" out of some strange reference
...
to the gambling device. Name it something more meaningful.
llvm-svn: 54974
2008-08-19 04:26:57 +00:00
Chris Lattner
f155e446fd
add raw_ostream method for emitting an unsigned.
...
llvm-svn: 54972
2008-08-19 04:23:02 +00:00
Devang Patel
84b8e5630e
Compress manpages.
...
llvm-svn: 54971
2008-08-19 01:17:41 +00:00
Owen Anderson
c68a43890f
Make SimpleSpiller respect subregister indices.
...
llvm-svn: 54968
2008-08-19 01:05:33 +00:00
Chris Lattner
61e771be29
add a note
...
llvm-svn: 54964
2008-08-19 00:41:02 +00:00
Owen Anderson
94b85d88da
Add a flag to enable the fast spilling path.
...
llvm-svn: 54958
2008-08-19 00:17:30 +00:00
Dan Gohman
6fb94e9d02
Fix the FastISel class' doxygen comment.
...
llvm-svn: 54957
2008-08-18 23:41:46 +00:00
Owen Anderson
f7f555763d
Fix a few more bugs:
...
1) Assign stack slots to new temporaries.
2) Don't insert an interval into the return vector more than once.
llvm-svn: 54956
2008-08-18 23:41:04 +00:00
Chris Lattner
843bb4018c
remove empty file
...
llvm-svn: 54950
2008-08-18 21:27:19 +00:00
Owen Anderson
0c22b6d22c
Fix several bugs in the new fast-path:
...
1) Remove an incorrect assertion.
2) Set the stack slot weight properly.
3) Resize the VirtRegMap when needed.
llvm-svn: 54949
2008-08-18 21:20:32 +00:00
Anton Korobeynikov
2b4db92a29
Unbreak cpp backend: upgrade output due to change in APInt API
...
llvm-svn: 54942
2008-08-18 20:03:45 +00:00
Owen Anderson
c25fc6fc35
Clients of addIntervalForSpills expect the added intervals to be returned sorted by starting index.
...
llvm-svn: 54939
2008-08-18 19:52:22 +00:00
Chris Lattner
467a8dc22e
Fix a bug daniel pointed out to me, where asmprinter started
...
printing ascii code for hex numbers instead of the hex numbers
themselves.
llvm-svn: 54936
2008-08-18 19:41:26 +00:00
Owen Anderson
751ff13625
Simplify the fast-patch interval spilling by using MachineRegisterInfo::reg_iterator.
...
llvm-svn: 54930
2008-08-18 18:38:12 +00:00
Bill Wendling
98fb8113e8
XFAIL this test for now.
...
llvm-svn: 54929
2008-08-18 18:29:54 +00:00
Owen Anderson
39bb486001
Resurrect some ancient code to add spill ranges without attempting folding, remat, or splitting. This code has been updated to current APIs
...
in so far as it compiles and, in theory, works, but does not take advantage of recent advancements. For instance, it could be improved by using
MachineRegisterInfo::use_iterator.
llvm-svn: 54924
2008-08-18 18:05:32 +00:00
Nicolas Geoffray
c5c2108727
Register the frame register function when allocating the JIT,
...
so that lli works out of the box with -enable-eh.
llvm-svn: 54920
2008-08-18 14:53:56 +00:00