1 //===- CodeGenRegisters.h - Register and RegisterClass Info -----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines structures to encapsulate information gleaned from the
11 // target register and register class definitions.
13 //===----------------------------------------------------------------------===//
15 #ifndef CODEGEN_REGISTERS_H
16 #define CODEGEN_REGISTERS_H
24 /// CodeGenRegister - Represents a register definition.
25 struct CodeGenRegister {
27 const std::string &getName() const;
28 unsigned DeclaredSpillSize, DeclaredSpillAlignment;
29 CodeGenRegister(Record *R);
33 struct CodeGenRegisterClass {
35 std::string Namespace;
36 std::vector<Record*> Elements;
38 unsigned SpillAlignment;
39 std::string MethodProtos, MethodBodies;
41 const std::string &getName() const;
43 CodeGenRegisterClass(Record *R);