blob: 58a20449d76b47b62d2e0bfccfa0dd73c15d6114 [file] [log] [blame]
Chris Lattner97e8b6f2007-10-07 06:04:32 +00001//===--- ASTConsumers.h - ASTConsumer implementations -----------*- C++ -*-===//
Reid Spencer5f016e22007-07-11 17:01:13 +00002//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner0bc735f2007-12-29 19:59:25 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Reid Spencer5f016e22007-07-11 17:01:13 +00007//
8//===----------------------------------------------------------------------===//
9//
Chris Lattner97e8b6f2007-10-07 06:04:32 +000010// AST Consumers.
Reid Spencer5f016e22007-07-11 17:01:13 +000011//
12//===----------------------------------------------------------------------===//
13
Chris Lattner97e8b6f2007-10-07 06:04:32 +000014#ifndef DRIVER_ASTCONSUMERS_H
15#define DRIVER_ASTCONSUMERS_H
Reid Spencer5f016e22007-07-11 17:01:13 +000016
Ted Kremenekea75c552007-11-28 21:32:21 +000017#include <iosfwd>
Ted Kremenek1b5a4bd2007-11-27 21:46:50 +000018
Ted Kremeneka1fa3a12007-12-13 00:37:31 +000019namespace llvm { namespace sys { class Path; }}
20
Reid Spencer5f016e22007-07-11 17:01:13 +000021namespace clang {
22
Chris Lattner556beb72007-09-15 22:56:56 +000023class ASTConsumer;
Chris Lattnerc0508f92007-09-15 23:21:08 +000024class Diagnostic;
Ted Kremenekdca24662007-12-05 00:26:13 +000025class FileManager;
Chris Lattner45e8cbd2007-11-28 05:34:05 +000026struct LangOptions;
Reid Spencer5f016e22007-07-11 17:01:13 +000027
Ted Kremenekea75c552007-11-28 21:32:21 +000028ASTConsumer *CreateASTPrinter(std::ostream* OS = NULL);
Ted Kremenekfdfc1982007-12-19 22:24:34 +000029
Chris Lattner3d4997d2007-09-15 23:02:28 +000030ASTConsumer *CreateASTDumper();
Ted Kremenekfdfc1982007-12-19 22:24:34 +000031
Ted Kremenek80de08f2007-09-19 21:29:43 +000032ASTConsumer *CreateASTViewer();
Ted Kremenekfdfc1982007-12-19 22:24:34 +000033
Chris Lattnerc0508f92007-09-15 23:21:08 +000034ASTConsumer *CreateCFGDumper(bool ViewGraphs = false);
Ted Kremenekfdfc1982007-12-19 22:24:34 +000035
Chris Lattnerc0508f92007-09-15 23:21:08 +000036ASTConsumer *CreateLiveVarAnalyzer();
Ted Kremenekfdfc1982007-12-19 22:24:34 +000037
Chris Lattnerc0508f92007-09-15 23:21:08 +000038ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags);
Ted Kremenekfdfc1982007-12-19 22:24:34 +000039
Ted Kremenek2bf55142007-09-17 20:49:30 +000040ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
Ted Kremeneke603df42008-01-08 18:04:06 +000041
42ASTConsumer *CreateGRConstProp();
Ted Kremenekfdfc1982007-12-19 22:24:34 +000043
Chris Lattner45e8cbd2007-11-28 05:34:05 +000044ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features);
Ted Kremenekfdfc1982007-12-19 22:24:34 +000045
Seo Sanghyeonfe947ad2007-12-24 01:52:34 +000046ASTConsumer *CreateBCWriter(const std::string& InFile,
47 const std::string& OutFile,
48 Diagnostic &Diags,
49 const LangOptions &LOpts);
50
Chris Lattnere365c502007-11-30 22:25:36 +000051ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags);
Ted Kremenekfdfc1982007-12-19 22:24:34 +000052
53ASTConsumer *CreateSerializationTest(Diagnostic &Diags,
54 FileManager& FMgr,
Ted Kremenekacc9f332007-12-05 21:34:36 +000055 const LangOptions &LOpts);
Ted Kremeneka1fa3a12007-12-13 00:37:31 +000056
Ted Kremenekf06c9282007-12-19 23:49:37 +000057ASTConsumer *CreateASTSerializer(const std::string& InFile,
58 const std::string& EmitDir,
Ted Kremenekfdfc1982007-12-19 22:24:34 +000059 Diagnostic &Diags,
60 const LangOptions &LOpts);
Ted Kremenek055c2752007-09-06 23:00:42 +000061
Reid Spencer5f016e22007-07-11 17:01:13 +000062} // end clang namespace
63
64#endif