11e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//===-- XCore.h - Top-level interface for XCore representation --*- C++ -*-===//
21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//
31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//
51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source
61e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// License. See LICENSE.TXT for details.
71e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//
81e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//===----------------------------------------------------------------------===//
91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//
10a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// This file contains the entry points for global functions defined in the LLVM
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// XCore back-end.
121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//
131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)//===----------------------------------------------------------------------===//
141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#ifndef TARGET_XCORE_H
161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#define TARGET_XCORE_H
171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "MCTargetDesc/XCoreMCTargetDesc.h"
191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "llvm/Target/TargetMachine.h"
201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace llvm {
221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  class FunctionPass;
231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  class ModulePass;
241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  class TargetMachine;
251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  class XCoreTargetMachine;
261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  class formatted_raw_ostream;
271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  void initializeXCoreLowerThreadLocalPass(PassRegistry &p);
291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  FunctionPass *createXCoreFrameToArgsOffsetEliminationPass();
31  FunctionPass *createXCoreISelDag(XCoreTargetMachine &TM,
32                                   CodeGenOpt::Level OptLevel);
33  ModulePass *createXCoreLowerThreadLocalPass();
34
35  ImmutablePass *createXCoreTargetTransformInfoPass(const XCoreTargetMachine *TM);
36
37} // end namespace llvm;
38
39#endif
40