1 *** README for the LLVM IA64 Backend "Version 0.01" - March 18, 2005
2 *** Quote for this version:
4 "Kaori and Hitomi are naughty!!"
7 Congratulations, you have found:
9 ****************************************************************
10 * @@@ @@@ @@@ @@@ @@@@@@@@@@ *
11 * @@@ @@@ @@@ @@@ @@@@@@@@@@@ *
12 * @@! @@! @@! @@@ @@! @@! @@! *
13 * !@! !@! !@! @!@ !@! !@! !@! *
14 * @!! @!! @!@ !@! @!! !!@ @!@ *
15 * !!! !!! !@! !!! !@! ! !@! *
16 * !!: !!: :!: !!: !!: !!: *
17 * :!: :!: ::!!:! :!: :!: *
18 * :: :::: :: :::: :::: ::: :: *
19 * : :: : : : :: : : : : : *
22 * @@@@@@ @@@ @@@ @@@ @@@@@@ @@@@@@ @@@ *
23 * @@@@@@@@ @@@@ @@@ @@@ @@@@@@@@ @@@@@@@ @@@@ *
24 * @@! @@@ @@!@!@@@ @@! @@! @@@ !@@ @@!@! *
25 * !@! @!@ !@!!@!@! !@! !@! @!@ !@! !@!!@! *
26 * @!@ !@! @!@ !!@! !!@ @!@!@!@! !!@@!@! @!! @!! *
27 * !@! !!! !@! !!! !!! !!!@!!!! @!!@!!!! !!! !@! *
28 * !!: !!! !!: !!! !!: !!: !!! !:! !:! :!!:!:!!: *
29 * :!: !:! :!: !:! :!: :!: !:! :!: !:! !:::!!::: *
30 * ::::: :: :: :: :: :: ::: :::: ::: ::: *
31 * : : : :: : : : : : :: : : ::: *
33 ****************************************************************
34 * Bow down, bow down, before the power of IA64! Or be crushed, *
35 * be crushed, by its jolly registers of doom!! *
36 ****************************************************************
40 _ you are 2005 maybe 2005 2006 2006 and
44 CLEAN UP ADD INSTRUCTION ADD PLAY WITH
45 INSTRUCTION --> SCHEDULING AND --> JIT --> DYNAMIC --> FUTURE WORK
46 SELECTION BUNDLING SUPPORT REOPTIMIZATION
48 DISCLAIMER AND PROMISE:
50 As of the time of this release, you are probably better off using Intel C/C++
51 or GCC. The performance of the code emitted right now is, in a word,
52 terrible. Check back in a few months - the story will be different then,
57 - stop passing FP args in both FP *and* integer regs when not required
58 - allocate low (nonstacked) registers more aggressively
59 - clean up and thoroughly test the isel patterns.
60 - fix stacked register allocation order: (for readability) we don't want
61 the out? registers being the first ones used
62 - fix up floating point
63 (nb http://gcc.gnu.org/wiki?pagename=ia64%20floating%20point )
65 (we will avoid the mess that is:
66 http://gcc.gnu.org/ml/gcc/2003-12/msg00832.html )
67 - instruction scheduling (hmmmm! ;)
68 - write truly inspirational documentation
69 - if-conversion (predicate database/knowledge? etc etc)
70 - counted loop support
71 - make integer + FP mul/div more clever (we have fixed pseudocode atm)
72 - track and use comparison complements
76 - we are strictly LP64 here, no support for ILP32 on HP-UX. Linux users
77 don't need to worry about this.
78 - i have instruction scheduling/bundling pseudocode, that really works
79 (has been tested, albeit at the perl-script level).
80 so, before you go write your own, send me an email!
82 KNOWN DEFECTS AT THE CURRENT TIME:
84 - C++ vtables contain naked function pointers, not function descriptors,
85 which is bad. see http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=406
87 - alloca doesn't work (indeed, stack frame layout is bogus)
88 - no support for big-endian environments
89 - (not really the backend, but...) the CFE has some issues on IA64.
90 these will probably be fixed soon.
94 - Chris Lattner (x100)
95 - Other LLVM developers ("hey, that looks familiar")
99 - You can email me at duraid@octopus.com.au. If you find a small bug,
100 just email me. If you find a big bug, please file a bug report
101 in bugzilla! http://llvm.cs.uiuc.edu is your one stop shop for all