X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FARM%2FARM.h;h=cd7540e5241085c5904d58cbcd1fcca5ada8e151;hb=001f3417071d4d6b08cc0dcd1dc03f5f90fe7623;hp=49ed64dca518bcdbdfedbe91a15e041ba6355068;hpb=71f3b94fa846114a2ce45645ef262e230737e65e;p=oota-llvm.git diff --git a/lib/Target/ARM/ARM.h b/lib/Target/ARM/ARM.h index 49ed64dca51..cd7540e5241 100644 --- a/lib/Target/ARM/ARM.h +++ b/lib/Target/ARM/ARM.h @@ -1,9 +1,8 @@ -//===-- ARM.h - Top-level interface for ARM representation---- --*- C++ -*-===// +//===-- ARM.h - Top-level interface for ARM representation ------*- C++ -*-===// // // The LLVM Compiler Infrastructure // -// This file was developed by the "Instituto Nokia de Tecnologia" and -// is distributed under the University of Illinois Open Source +// This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// @@ -13,81 +12,39 @@ // //===----------------------------------------------------------------------===// -#ifndef TARGET_ARM_H -#define TARGET_ARM_H +#ifndef LLVM_LIB_TARGET_ARM_ARM_H +#define LLVM_LIB_TARGET_ARM_ARM_H -#include -#include +#include "llvm/Support/CodeGen.h" +#include namespace llvm { - // Enums corresponding to ARM condition codes - namespace ARMCC { - enum CondCodes { - EQ, - NE, - CS, - CC, - MI, - PL, - VS, - VC, - HI, - LS, - GE, - LT, - GT, - LE, - AL - }; - } - namespace ARMShift { - enum ShiftTypes { - LSL, - LSR, - ASR, - ROR, - RRX - }; - } +class ARMAsmPrinter; +class ARMBaseTargetMachine; +class Function; +class FunctionPass; +class ImmutablePass; +class MachineInstr; +class MCInst; +class TargetLowering; +class TargetMachine; + +FunctionPass *createARMISelDag(ARMBaseTargetMachine &TM, + CodeGenOpt::Level OptLevel); +FunctionPass *createA15SDOptimizerPass(); +FunctionPass *createARMLoadStoreOptimizationPass(bool PreAlloc = false); +FunctionPass *createARMExpandPseudoPass(); +FunctionPass *createARMConstantIslandPass(); +FunctionPass *createMLxExpansionPass(); +FunctionPass *createThumb2ITBlockPass(); +FunctionPass *createARMOptimizeBarriersPass(); +FunctionPass *createThumb2SizeReductionPass( + std::function Ftor = nullptr); + +void LowerARMMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI, + ARMAsmPrinter &AP); - static const char *ARMCondCodeToString(ARMCC::CondCodes CC) { - switch (CC) { - default: assert(0 && "Unknown condition code"); - case ARMCC::EQ: return "eq"; - case ARMCC::NE: return "ne"; - case ARMCC::CS: return "cs"; - case ARMCC::CC: return "cc"; - case ARMCC::MI: return "mi"; - case ARMCC::PL: return "pl"; - case ARMCC::VS: return "vs"; - case ARMCC::VC: return "vc"; - case ARMCC::HI: return "hi"; - case ARMCC::LS: return "ls"; - case ARMCC::GE: return "ge"; - case ARMCC::LT: return "lt"; - case ARMCC::GT: return "gt"; - case ARMCC::LE: return "le"; - case ARMCC::AL: return "al"; - } - } - - class FunctionPass; - class TargetMachine; - - FunctionPass *createARMISelDag(TargetMachine &TM); - FunctionPass *createARMCodePrinterPass(std::ostream &OS, TargetMachine &TM); - FunctionPass *createARMFixMulPass(); } // end namespace llvm; -// Defines symbolic names for ARM registers. This defines a mapping from -// register name to register number. -// -#include "ARMGenRegisterNames.inc" - -// Defines symbolic names for the ARM instructions. -// -#include "ARMGenInstrNames.inc" - - #endif