- };
-
- // GCMetadataPrinter - Emits GC metadata as assembly code.
- class GCMetadataPrinter {
- public:
- typedef Collector::list_type list_type;
- typedef Collector::iterator iterator;
-
- private:
- Collector *Coll;
-
- friend class AsmPrinter;
-
- protected:
- // May only be subclassed.
- GCMetadataPrinter();
-
- // Do not implement.
- GCMetadataPrinter(const GCMetadataPrinter &);
- GCMetadataPrinter &operator=(const GCMetadataPrinter &);
-
- public:
- Collector &getCollector() { return *Coll; }
- const Module &getModule() const { return Coll->getModule(); }
-
- iterator begin() { return Coll->begin(); }
- iterator end() { return Coll->end(); }
-
- /// beginAssembly/finishAssembly - Emit module metadata as assembly code.
- virtual void beginAssembly(std::ostream &OS, AsmPrinter &AP,
- const TargetAsmInfo &TAI);
-
- virtual void finishAssembly(std::ostream &OS, AsmPrinter &AP,
- const TargetAsmInfo &TAI);
-
- virtual ~GCMetadataPrinter();