blob: 91ee8fbf938fc85dc4b2dab6a91409c63803d7d6 [file] [log] [blame]
Chris Lattnereb8c9632007-10-07 06:04:32 +00001//===--- ASTConsumers.h - ASTConsumer implementations -----------*- C++ -*-===//
Chris Lattner4b009652007-07-25 00:24:17 +00002//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner959e5be2007-12-29 19:59:25 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Chris Lattner4b009652007-07-25 00:24:17 +00007//
8//===----------------------------------------------------------------------===//
9//
Chris Lattnereb8c9632007-10-07 06:04:32 +000010// AST Consumers.
Chris Lattner4b009652007-07-25 00:24:17 +000011//
12//===----------------------------------------------------------------------===//
13
Chris Lattnereb8c9632007-10-07 06:04:32 +000014#ifndef DRIVER_ASTCONSUMERS_H
15#define DRIVER_ASTCONSUMERS_H
Chris Lattner4b009652007-07-25 00:24:17 +000016
Eli Friedmane316e9d2008-02-16 23:17:23 +000017#include <string>
Ted Kremenekbe2ea3b2007-11-28 21:32:21 +000018#include <iosfwd>
Ted Kremeneke09391a2007-11-27 21:46:50 +000019
Chris Lattner8d72ee02008-02-06 01:42:25 +000020namespace llvm {
21 class Module;
22 namespace sys { class Path; }
23}
Chris Lattner4b009652007-07-25 00:24:17 +000024namespace clang {
25
Chris Lattner1cc01712007-09-15 22:56:56 +000026class ASTConsumer;
Chris Lattner52332d02007-09-15 23:21:08 +000027class Diagnostic;
Ted Kremenek923de592007-12-05 00:26:13 +000028class FileManager;
Chris Lattnerdb6be562007-11-28 05:34:05 +000029struct LangOptions;
Chris Lattner4b009652007-07-25 00:24:17 +000030
Ted Kremenekbe2ea3b2007-11-28 21:32:21 +000031ASTConsumer *CreateASTPrinter(std::ostream* OS = NULL);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000032
Chris Lattnerb73abd52007-09-15 23:02:28 +000033ASTConsumer *CreateASTDumper();
Ted Kremenekd890f6a2007-12-19 22:24:34 +000034
Ted Kremenekb6976a22007-09-19 21:29:43 +000035ASTConsumer *CreateASTViewer();
Ted Kremenekd890f6a2007-12-19 22:24:34 +000036
Ted Kremenek83390ec2008-02-22 20:00:31 +000037ASTConsumer *CreateCFGDumper(bool ViewGraphs, const std::string& FName);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000038
Ted Kremenekb278abb2008-02-22 20:13:09 +000039ASTConsumer *CreateLiveVarAnalyzer(const std::string& fname);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000040
Chris Lattner52332d02007-09-15 23:21:08 +000041ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000042
Ted Kremenek0a03ce62007-09-17 20:49:30 +000043ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
Ted Kremenek3b451132008-01-08 18:04:06 +000044
Ted Kremenek0118bb52008-02-18 21:21:23 +000045ASTConsumer *CreateGRSimpleVals(Diagnostic &Diags,
46 const std::string& Function,
Ted Kremenek517cb512008-04-14 18:40:58 +000047 const std::string& HTMLDir, bool Visualize,
48 bool TrimGraph, bool AnalyzeAll);
Ted Kremenek827f93b2008-03-06 00:08:09 +000049
Ted Kremenekb1983ba2008-04-10 22:16:52 +000050ASTConsumer *CreateCFRefChecker(Diagnostic &Diags,
51 const std::string& Function,
Ted Kremenek517cb512008-04-14 18:40:58 +000052 const std::string& HTMLDir, bool Visualize,
53 bool TrimGraph, bool AnalyzeAll);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000054
Fariborz Jahanian8d2080c2008-01-18 01:15:54 +000055ASTConsumer *CreateCodeRewriterTest(const std::string& InFile,
Chris Lattner673f2bd2008-03-22 00:08:40 +000056 const std::string& OutFile,
Steve Naroff7fd0aff2008-03-10 20:43:59 +000057 Diagnostic &Diags,
58 const LangOptions &LOpts);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000059
Chris Lattner5fdcc302008-04-16 05:21:09 +000060 ASTConsumer* CreateHTMLPrinter(const std::string &OutFile, Diagnostic &D);
Ted Kremenek24612ae2008-03-18 21:19:49 +000061
Ted Kremenekd890f6a2007-12-19 22:24:34 +000062ASTConsumer *CreateSerializationTest(Diagnostic &Diags,
63 FileManager& FMgr,
Ted Kremenek2939b8a2007-12-05 21:34:36 +000064 const LangOptions &LOpts);
Ted Kremenek397de012007-12-13 00:37:31 +000065
Ted Kremenek21189012007-12-19 23:49:37 +000066ASTConsumer *CreateASTSerializer(const std::string& InFile,
67 const std::string& EmitDir,
Ted Kremenekd890f6a2007-12-19 22:24:34 +000068 Diagnostic &Diags,
69 const LangOptions &LOpts);
Ted Kremeneke805c4a2007-09-06 23:00:42 +000070
Chris Lattner4b009652007-07-25 00:24:17 +000071} // end clang namespace
72
73#endif