mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 03:53:04 +02:00
b755d35fd2
ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. llvm-svn: 11340
61 lines
2.0 KiB
C++
61 lines
2.0 KiB
C++
//===- X86RegisterInfo.h - X86 Register Information Impl --------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file was developed by the LLVM research group and is distributed under
|
|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains the X86 implementation of the MRegisterInfo class.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef X86REGISTERINFO_H
|
|
#define X86REGISTERINFO_H
|
|
|
|
#include "llvm/Target/MRegisterInfo.h"
|
|
|
|
class llvm::Type;
|
|
|
|
#include "X86GenRegisterInfo.h.inc"
|
|
|
|
namespace llvm {
|
|
|
|
struct X86RegisterInfo : public X86GenRegisterInfo {
|
|
X86RegisterInfo();
|
|
const TargetRegisterClass* getRegClassForType(const Type* Ty) const;
|
|
|
|
/// Code Generation virtual methods...
|
|
int storeRegToStackSlot(MachineBasicBlock &MBB,
|
|
MachineInstr* MI,
|
|
unsigned SrcReg, int FrameIndex,
|
|
const TargetRegisterClass *RC) const;
|
|
|
|
int loadRegFromStackSlot(MachineBasicBlock &MBB,
|
|
MachineInstr* MI,
|
|
unsigned DestReg, int FrameIndex,
|
|
const TargetRegisterClass *RC) const;
|
|
|
|
int copyRegToReg(MachineBasicBlock &MBB,
|
|
MachineInstr* MI,
|
|
unsigned DestReg, unsigned SrcReg,
|
|
const TargetRegisterClass *RC) const;
|
|
|
|
int eliminateCallFramePseudoInstr(MachineFunction &MF,
|
|
MachineBasicBlock &MBB,
|
|
MachineInstr* MI) const;
|
|
|
|
int eliminateFrameIndex(MachineFunction &MF,
|
|
MachineInstr* MI) const;
|
|
|
|
int processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
|
|
|
int emitPrologue(MachineFunction &MF) const;
|
|
int emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
|
|
};
|
|
|
|
} // End llvm namespace
|
|
|
|
#endif
|