summaryrefslogtreecommitdiffstats
path: root/include/clang/CodeGen/CodeGenAction.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/CodeGen/CodeGenAction.h')
-rw-r--r--include/clang/CodeGen/CodeGenAction.h107
1 files changed, 0 insertions, 107 deletions
diff --git a/include/clang/CodeGen/CodeGenAction.h b/include/clang/CodeGen/CodeGenAction.h
deleted file mode 100644
index cc38e24..0000000
--- a/include/clang/CodeGen/CodeGenAction.h
+++ /dev/null
@@ -1,107 +0,0 @@
-//===--- CodeGenAction.h - LLVM Code Generation Frontend Action -*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_CODEGEN_CODEGENACTION_H
-#define LLVM_CLANG_CODEGEN_CODEGENACTION_H
-
-#include "clang/Frontend/FrontendAction.h"
-#include <memory>
-
-namespace llvm {
- class LLVMContext;
- class Module;
-}
-
-namespace clang {
-class BackendConsumer;
-
-class CodeGenAction : public ASTFrontendAction {
-private:
- unsigned Act;
- std::unique_ptr<llvm::Module> TheModule;
- // Vector of {Linker::Flags, Module*} pairs to specify bitcode
- // modules to link in using corresponding linker flags.
- SmallVector<std::pair<unsigned, llvm::Module *>, 4> LinkModules;
- llvm::LLVMContext *VMContext;
- bool OwnsVMContext;
-
-protected:
- /// Create a new code generation action. If the optional \p _VMContext
- /// parameter is supplied, the action uses it without taking ownership,
- /// otherwise it creates a fresh LLVM context and takes ownership.
- CodeGenAction(unsigned _Act, llvm::LLVMContext *_VMContext = nullptr);
-
- bool hasIRSupport() const override;
-
- std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
- StringRef InFile) override;
-
- void ExecuteAction() override;
-
- void EndSourceFileAction() override;
-
-public:
- ~CodeGenAction() override;
-
- /// setLinkModule - Set the link module to be used by this action. If a link
- /// module is not provided, and CodeGenOptions::LinkBitcodeFile is non-empty,
- /// the action will load it from the specified file.
- void addLinkModule(llvm::Module *Mod, unsigned LinkFlags) {
- LinkModules.push_back(std::make_pair(LinkFlags, Mod));
- }
-
- /// Take the generated LLVM module, for use after the action has been run.
- /// The result may be null on failure.
- std::unique_ptr<llvm::Module> takeModule();
-
- /// Take the LLVM context used by this action.
- llvm::LLVMContext *takeLLVMContext();
-
- BackendConsumer *BEConsumer;
-};
-
-class EmitAssemblyAction : public CodeGenAction {
- virtual void anchor();
-public:
- EmitAssemblyAction(llvm::LLVMContext *_VMContext = nullptr);
-};
-
-class EmitBCAction : public CodeGenAction {
- virtual void anchor();
-public:
- EmitBCAction(llvm::LLVMContext *_VMContext = nullptr);
-};
-
-class EmitLLVMAction : public CodeGenAction {
- virtual void anchor();
-public:
- EmitLLVMAction(llvm::LLVMContext *_VMContext = nullptr);
-};
-
-class EmitLLVMOnlyAction : public CodeGenAction {
- virtual void anchor();
-public:
- EmitLLVMOnlyAction(llvm::LLVMContext *_VMContext = nullptr);
-};
-
-class EmitCodeGenOnlyAction : public CodeGenAction {
- virtual void anchor();
-public:
- EmitCodeGenOnlyAction(llvm::LLVMContext *_VMContext = nullptr);
-};
-
-class EmitObjAction : public CodeGenAction {
- virtual void anchor();
-public:
- EmitObjAction(llvm::LLVMContext *_VMContext = nullptr);
-};
-
-}
-
-#endif
OpenPOWER on IntegriCloud