1251607Sdim//===---- MipsOs16.h for Mips Option -Os16                         --------===//
2251607Sdim//
3251607Sdim//                     The LLVM Compiler Infrastructure
4251607Sdim//
5251607Sdim// This file is distributed under the University of Illinois Open Source
6251607Sdim// License. See LICENSE.TXT for details.
7251607Sdim//
8251607Sdim//===----------------------------------------------------------------------===//
9251607Sdim//
10251607Sdim// This file defines an optimization phase for the MIPS target.
11251607Sdim//
12251607Sdim//===----------------------------------------------------------------------===//
13251607Sdim
14251607Sdim#include "MCTargetDesc/MipsMCTargetDesc.h"
15251607Sdim#include "MipsTargetMachine.h"
16251607Sdim#include "llvm/Pass.h"
17251607Sdim#include "llvm/Target/TargetMachine.h"
18251607Sdim
19251607Sdim
20251607Sdim
21251607Sdim#ifndef MIPSOS16_H
22251607Sdim#define MIPSOS16_H
23251607Sdim
24251607Sdimusing namespace llvm;
25251607Sdim
26251607Sdimnamespace llvm {
27251607Sdim
28251607Sdimclass MipsOs16 : public ModulePass {
29251607Sdim
30251607Sdimpublic:
31251607Sdim  static char ID;
32251607Sdim
33251607Sdim  MipsOs16() : ModulePass(ID) {
34251607Sdim
35251607Sdim  }
36251607Sdim
37251607Sdim  virtual const char *getPassName() const {
38251607Sdim    return "MIPS Os16 Optimization";
39251607Sdim  }
40251607Sdim
41251607Sdim  virtual bool runOnModule(Module &M);
42251607Sdim
43251607Sdim};
44251607Sdim
45251607SdimModulePass *createMipsOs16(MipsTargetMachine &TM);
46251607Sdim
47251607Sdim}
48251607Sdim
49251607Sdim#endif
50