1//===-- X86coffmachinemoduleinfo.h - X86 COFF MMI Impl ----------*- 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// This is an MMI implementation for X86 COFF (windows) targets.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef X86COFF_MACHINEMODULEINFO_H
15#define X86COFF_MACHINEMODULEINFO_H
16
17#include "X86MachineFunctionInfo.h"
18#include "llvm/CodeGen/MachineModuleInfo.h"
19#include "llvm/ADT/DenseSet.h"
20
21namespace llvm {
22  class X86MachineFunctionInfo;
23  class TargetData;
24
25/// X86COFFMachineModuleInfo - This is a MachineModuleInfoImpl implementation
26/// for X86 COFF targets.
27class X86COFFMachineModuleInfo : public MachineModuleInfoImpl {
28  DenseSet<MCSymbol const *> Externals;
29public:
30  X86COFFMachineModuleInfo(const MachineModuleInfo &) {}
31  virtual ~X86COFFMachineModuleInfo();
32
33  void addExternalFunction(MCSymbol* Symbol) {
34    Externals.insert(Symbol);
35  }
36
37  typedef DenseSet<MCSymbol const *>::const_iterator externals_iterator;
38  externals_iterator externals_begin() const { return Externals.begin(); }
39  externals_iterator externals_end() const { return Externals.end(); }
40};
41
42
43
44} // end namespace llvm
45
46#endif
47