LLVM API Documentation

ARMInstrInfo.h

Go to the documentation of this file.
00001 //===- ARMInstrInfo.h - ARM Instruction Information --------------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file was developed by the "Instituto Nokia de Tecnologia" and
00006 // is distributed under the University of Illinois Open Source
00007 // License. See LICENSE.TXT for details.
00008 //
00009 //===----------------------------------------------------------------------===//
00010 //
00011 // This file contains the ARM implementation of the TargetInstrInfo class.
00012 //
00013 //===----------------------------------------------------------------------===//
00014 
00015 #ifndef ARMINSTRUCTIONINFO_H
00016 #define ARMINSTRUCTIONINFO_H
00017 
00018 #include "llvm/Target/TargetInstrInfo.h"
00019 #include "ARMRegisterInfo.h"
00020 
00021 namespace llvm {
00022 
00023 class ARMInstrInfo : public TargetInstrInfo {
00024   const ARMRegisterInfo RI;
00025 public:
00026   ARMInstrInfo();
00027 
00028   /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
00029   /// such, whenever a client has an instance of instruction info, it should
00030   /// always be able to get register info as well (through this method).
00031   ///
00032   virtual const MRegisterInfo &getRegisterInfo() const { return RI; }
00033 
00034   /// Return true if the instruction is a register to register move and
00035   /// leave the source and dest operands in the passed parameters.
00036   ///
00037   virtual bool isMoveInstr(const MachineInstr &MI,
00038                            unsigned &SrcReg, unsigned &DstReg) const;
00039 };
00040 
00041 }
00042 
00043 #endif