blob: fea0b39e91e5ffca1d845cc5fef73cbb7f37a3ae [file] [log] [blame]
Vincent Lejeuneace6f732013-04-01 21:47:53 +00001//===-- R600MachineFunctionInfo.h - R600 Machine Function Info ----*- C++ -*-=//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10/// \file
11//===----------------------------------------------------------------------===//
12
13#ifndef AMDGPUMACHINEFUNCTION_H
14#define AMDGPUMACHINEFUNCTION_H
15
16#include "llvm/CodeGen/MachineFunction.h"
Tom Stellardde60e252013-09-05 18:37:57 +000017#include <map>
Vincent Lejeuneace6f732013-04-01 21:47:53 +000018
19namespace llvm {
20
21class AMDGPUMachineFunction : public MachineFunctionInfo {
Juergen Ributzkad12ccbd2013-11-19 00:57:56 +000022 virtual void anchor();
Vincent Lejeuneace6f732013-04-01 21:47:53 +000023public:
24 AMDGPUMachineFunction(const MachineFunction &MF);
25 unsigned ShaderType;
Tom Stellardde60e252013-09-05 18:37:57 +000026 /// A map to keep track of local memory objects and their offsets within
27 /// the local memory space.
28 std::map<const GlobalValue *, unsigned> LocalMemoryObjects;
Tom Stellardc026e8b2013-06-28 15:47:08 +000029 /// Number of bytes in the LDS that are being used.
30 unsigned LDSSize;
Vincent Lejeuneace6f732013-04-01 21:47:53 +000031};
32
33}
34#endif // AMDGPUMACHINEFUNCTION_H