blob: 86606dd827b7bad4525d34823019f4cc691ce897 [file] [log] [blame]
Duraid Madina37b11a92005-03-17 20:23:27 +00001*** README for the LLVM IA64 Backend "Version 0.01" - March 18, 2005
Duraid Madina9b9d45f2005-03-17 18:17:03 +00002*** Quote for this version:
3
4 "Kaori and Hitomi are naughty!!"
5
6
7Congratulations, you have found:
8
9****************************************************************
10* @@@ @@@ @@@ @@@ @@@@@@@@@@ *
11* @@@ @@@ @@@ @@@ @@@@@@@@@@@ *
12* @@! @@! @@! @@@ @@! @@! @@! *
13* !@! !@! !@! @!@ !@! !@! !@! *
14* @!! @!! @!@ !@! @!! !!@ @!@ *
15* !!! !!! !@! !!! !@! ! !@! *
16* !!: !!: :!: !!: !!: !!: *
17* :!: :!: ::!!:! :!: :!: *
18* :: :::: :: :::: :::: ::: :: *
19* : :: : : : :: : : : : : *
20* *
21* *
22* @@@@@@ @@@ @@@ @@@ @@@@@@ @@@@@@ @@@ *
23* @@@@@@@@ @@@@ @@@ @@@ @@@@@@@@ @@@@@@@ @@@@ *
24* @@! @@@ @@!@!@@@ @@! @@! @@@ !@@ @@!@! *
25* !@! @!@ !@!!@!@! !@! !@! @!@ !@! !@!!@! *
26* @!@ !@! @!@ !!@! !!@ @!@!@!@! !!@@!@! @!! @!! *
27* !@! !!! !@! !!! !!! !!!@!!!! @!!@!!!! !!! !@! *
28* !!: !!! !!: !!! !!: !!: !!! !:! !:! :!!:!:!!: *
29* :!: !:! :!: !:! :!: :!: !:! :!: !:! !:::!!::: *
30* ::::: :: :: :: :: :: ::: :::: ::: ::: *
31* : : : :: : : : : : :: : : ::: *
32* *
33****************************************************************
34* Bow down, bow down, before the power of IA64! Or be crushed, *
35* be crushed, by its jolly registers of doom!! *
36****************************************************************
37
38DEVELOPMENT PLAN:
39
40 _ you are 2005 maybe 2005 2006 2006 and
41 / here | | | beyond
42 v v v v |
43 v
44CLEAN UP ADD INSTRUCTION ADD PLAY WITH
45INSTRUCTION --> SCHEDULING AND --> JIT --> DYNAMIC --> FUTURE WORK
46SELECTION BUNDLING SUPPORT REOPTIMIZATION
47
48DISCLAIMER AND PROMISE:
49
50As of the time of this release, you are probably better off using Intel C/C++
51or GCC. The performance of the code emitted right now is, in a word,
52terrible. Check back in a few months - the story will be different then,
53I guarantee it.
54
55TODO:
56
57 - clean up and thoroughly test the isel patterns.
58 - fix up floating point
59 (nb http://gcc.gnu.org/wiki?pagename=ia64%20floating%20point )
60 - bundling!
61 (we will avoid the mess that is:
62 http://gcc.gnu.org/ml/gcc/2003-12/msg00832.html )
63 - instruction scheduling (yep)
64 - write truly inspirational documentation
65 - if-conversion (predicate database/knowledge? etc etc)
66 - counted loop support
67 - make integer + FP mul/div more clever (we have fixed pseudocode atm)
68 - track and use comparison complements
69
70INFO:
71
72 - we are strictly LP64 here, no support for ILP32 on HP-UX. Linux users
73 don't need to worry about this.
74 - i have instruction scheduling/bundling pseudocode, that really works
75 (has been tested, albeit at the perl-script level).
76 so, before you go write your own, send me an email!
77
78KNOWN DEFECTS AT THE CURRENT TIME:
79
80 - no varargs
81 - alloca doesn't work (indeed, stack frame layout is bogus)
82 - no support for big-endian environments
83 - (not really the backend, but...) the CFE has some issues on IA64.
84 these will probably be fixed soon.
85
86ACKNOWLEDGEMENTS:
87
88 - Chris Lattner (x100)
89 - Other LLVM developers ("hey, that looks familiar")
90
91CONTACT:
92
93 - You can email me at duraid@octopus.com.au. If you find a small bug,
94 just email me. If you find a big bug, please file a bug report
95 in bugzilla! http://llvm.cs.uiuc.edu is your one stop shop for all
96 things LLVM.
97
98