llvm/lib/Target/IA64
Chris Lattner 666b042658 Actually override the right method. :)
Bug identified by coverity.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28259 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-12 18:19:25 +00:00
..
.cvsignore
IA64.h Added getTargetLowering() to TargetMachine. Refactored targets to support this. 2006-03-13 23:20:37 +00:00
IA64.td PHI and INLINEASM are now built-in instructions provided by Target.td 2006-01-27 01:46:15 +00:00
IA64AsmPrinter.cpp Split SwitchSection into SwitchTo{Text|Data}Section methods. 2006-05-09 04:59:56 +00:00
IA64Bundling.cpp Added getTargetLowering() to TargetMachine. Refactored targets to support this. 2006-03-13 23:20:37 +00:00
IA64InstrBuilder.h There shalt be only one "immediate" operand type! 2006-05-04 17:21:20 +00:00
IA64InstrFormats.td
IA64InstrInfo.cpp add bundling! well not really, for now it's just stop-insertion. 2006-01-25 02:23:38 +00:00
IA64InstrInfo.h
IA64InstrInfo.td doo de doo 2006-03-08 06:18:46 +00:00
IA64ISelDAGToDAG.cpp #include Intrinsics.h into all dag isels 2006-03-25 06:47:10 +00:00
IA64ISelLowering.cpp JumpTable support! What this represents is working asm and jit support for 2006-04-22 18:53:45 +00:00
IA64ISelLowering.h Remove TLI.LowerReturnTo, and just let targets custom lower ISD::RET for 2006-01-27 21:09:22 +00:00
IA64MachineFunctionInfo.h
IA64RegisterInfo.cpp Move some methods out of MachineInstr into MachineOperand 2006-05-04 17:52:23 +00:00
IA64RegisterInfo.h Foundation for call frame information. 2006-04-07 16:34:46 +00:00
IA64RegisterInfo.td Add dwarf register numbering to register data. 2006-03-24 21:15:58 +00:00
IA64TargetMachine.cpp Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. 2006-05-03 01:29:57 +00:00
IA64TargetMachine.h Actually override the right method. :) 2006-05-12 18:19:25 +00:00
Makefile
README

*** README for the LLVM IA64 Backend "Version 0.01" - March 18, 2005
*** Quote for this version:

      "Kaori and Hitomi are naughty!!"


Congratulations, you have found:

**************************************************************** 
* @@@       @@@       @@@  @@@  @@@@@@@@@@                     *
* @@@       @@@       @@@  @@@  @@@@@@@@@@@                    *
* @@!       @@!       @@!  @@@  @@! @@! @@!                    *
* !@!       !@!       !@!  @!@  !@! !@! !@!                    *
* @!!       @!!       @!@  !@!  @!! !!@ @!@                    *
* !!!       !!!       !@!  !!!  !@!   ! !@!                    *
* !!:       !!:       :!:  !!:  !!:     !!:                    *
*  :!:       :!:       ::!!:!   :!:     :!:                    *
*  :: ::::   :: ::::    ::::    :::     ::                     *
* : :: : :  : :: : :     :       :      :                      *
*                                                              *
*                                                              *
*  @@@@@@   @@@  @@@       @@@   @@@@@@     @@@@@@       @@@   *
* @@@@@@@@  @@@@ @@@       @@@  @@@@@@@@   @@@@@@@      @@@@   *
* @@!  @@@  @@!@!@@@       @@!  @@!  @@@  !@@          @@!@!   *
* !@!  @!@  !@!!@!@!       !@!  !@!  @!@  !@!         !@!!@!   *
* @!@  !@!  @!@ !!@!       !!@  @!@!@!@!  !!@@!@!    @!! @!!   *
* !@!  !!!  !@!  !!!       !!!  !!!@!!!!  @!!@!!!!  !!!  !@!   *
* !!:  !!!  !!:  !!!       !!:  !!:  !!!  !:!  !:!  :!!:!:!!:  *
* :!:  !:!  :!:  !:!       :!:  :!:  !:!  :!:  !:!  !:::!!:::  *
* ::::: ::   ::   ::        ::  ::   :::  :::: :::       :::   *
*  : :  :   ::    :        :     :   : :   :: : :        :::   *
*                                                              *
****************************************************************
* Bow down, bow down, before the power of IA64! Or be crushed, *
* be crushed, by its jolly registers of doom!!                 *
****************************************************************

DEVELOPMENT PLAN:

   _  you are       2005           maybe 2005       2006            2006 and
  /   here            |               |              |               beyond 
 v                    v               v              v                |
                                                                      v
CLEAN UP        ADD INSTRUCTION      ADD          PLAY WITH
INSTRUCTION --> SCHEDULING AND  -->  JIT    -->    DYNAMIC     --> FUTURE WORK
SELECTION       BUNDLING            SUPPORT     REOPTIMIZATION

DISCLAIMER AND PROMISE:

As of the time of this release, you are probably better off using Intel C/C++
or GCC. The performance of the code emitted right now is, in a word,
terrible. Check back in a few months - the story will be different then,
I guarantee it.

TODO:

  - stop passing FP args in both FP *and* integer regs when not required
  - allocate low (nonstacked) registers more aggressively
  - clean up and thoroughly test the isel patterns.
  - fix stacked register allocation order: (for readability) we don't want
    the out? registers being the first ones used
  - fix up floating point
    (nb http://gcc.gnu.org/wiki?pagename=ia64%20floating%20point )
  - bundling!
    (we will avoid the mess that is:
     http://gcc.gnu.org/ml/gcc/2003-12/msg00832.html )
  - instruction scheduling (hmmmm! ;)
  - write truly inspirational documentation
  - if-conversion (predicate database/knowledge? etc etc)
  - counted loop support
  - make integer + FP mul/div more clever (we have fixed pseudocode atm)
  - track and use comparison complements

INFO:

  - we are strictly LP64 here, no support for ILP32 on HP-UX. Linux users
    don't need to worry about this.
  - i have instruction scheduling/bundling pseudocode, that really works
    (has been tested, albeit at the perl-script level).
    so, before you go write your own, send me an email!

KNOWN DEFECTS AT THE CURRENT TIME:

  - C++ vtables contain naked function pointers, not function descriptors,
  which is bad. see http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=406
  - varargs are broken
  - alloca doesn't work (indeed, stack frame layout is bogus)
  - no support for big-endian environments
  - (not really the backend, but...) the CFE has some issues on IA64.
    these will probably be fixed soon.
  
ACKNOWLEDGEMENTS:

  - Chris Lattner (x100)
  - Other LLVM developers ("hey, that looks familiar")

CONTACT:

  - You can email me at duraid@octopus.com.au. If you find a small bug,
    just email me. If you find a big bug, please file a bug report
    in bugzilla! http://llvm.cs.uiuc.edu is your one stop shop for all
    things LLVM.