ia64 asmprinter fixes:
[oota-llvm.git] / lib / Target / IA64 / README
1 *** README for the LLVM IA64 Backend "Version 0.01" - March 18, 2005
2 *** Quote for this version:
3
4       "Kaori and Hitomi are naughty!!"
5
6
7 Congratulations, 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
38 DEVELOPMENT PLAN:
39
40    _  you are       2005           maybe 2005       2006            2006 and
41   /   here            |               |              |               beyond 
42  v                    v               v              v                |
43                                                                       v
44 CLEAN UP        ADD INSTRUCTION      ADD          PLAY WITH
45 INSTRUCTION --> SCHEDULING AND  -->  JIT    -->    DYNAMIC     --> FUTURE WORK
46 SELECTION       BUNDLING            SUPPORT     REOPTIMIZATION
47
48 DISCLAIMER AND PROMISE:
49
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,
53 I guarantee it.
54
55 TODO:
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
70 INFO:
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
78 KNOWN DEFECTS AT THE CURRENT TIME:
79
80   - C++ vtables contain naked function pointers, not function descriptors,
81   which is bad. see http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=406
82   - varargs are broken
83   - alloca doesn't work (indeed, stack frame layout is bogus)
84   - no support for big-endian environments
85   - (not really the backend, but...) the CFE has some issues on IA64.
86     these will probably be fixed soon.
87   
88 ACKNOWLEDGEMENTS:
89
90   - Chris Lattner (x100)
91   - Other LLVM developers ("hey, that looks familiar")
92
93 CONTACT:
94
95   - You can email me at duraid@octopus.com.au. If you find a small bug,
96     just email me. If you find a big bug, please file a bug report
97     in bugzilla! http://llvm.cs.uiuc.edu is your one stop shop for all
98     things LLVM.
99
100