Add the framework for a dag-dag isel
[oota-llvm.git] / lib / Target / Sparc / Sparc.h
1 //===-- SparcV8.h - Top-level interface for SparcV8 representation -*- C++ -*-//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file contains the entry points for global functions defined in the LLVM
11 // SparcV8 back-end.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef TARGET_SPARCV8_H
16 #define TARGET_SPARCV8_H
17
18 #include <iosfwd>
19
20 namespace llvm {
21
22   class FunctionPass;
23   class TargetMachine;
24
25   FunctionPass *createSparcV8SimpleInstructionSelector(TargetMachine &TM);
26   FunctionPass *createSparcV8ISelDag(TargetMachine &TM);
27
28   FunctionPass *createSparcV8CodePrinterPass(std::ostream &OS,
29                                              TargetMachine &TM);
30   FunctionPass *createSparcV8DelaySlotFillerPass(TargetMachine &TM);
31   FunctionPass *createSparcV8FPMoverPass(TargetMachine &TM);
32
33 } // end namespace llvm;
34
35 // Defines symbolic names for SparcV8 registers.  This defines a mapping from
36 // register name to register number.
37 //
38 #include "SparcV8GenRegisterNames.inc"
39
40 // Defines symbolic names for the SparcV8 instructions.
41 //
42 #include "SparcV8GenInstrNames.inc"
43
44 #endif