9#ifndef LLVM_CLANG_CODEGEN_CODEGENACTION_H 
   10#define LLVM_CLANG_CODEGEN_CODEGENACTION_H 
   32    std::unique_ptr<llvm::Module> 
Module;
 
   47  std::unique_ptr<llvm::Module> TheModule;
 
   51  llvm::LLVMContext *VMContext;
 
   54  std::unique_ptr<llvm::Module> loadModule(llvm::MemoryBufferRef MBRef);
 
   65  CodeGenAction(
unsigned _Act, llvm::LLVMContext *_VMContext = 
nullptr);
 
   70                                                 StringRef InFile) 
override;
 
 
   92  virtual void anchor();
 
 
   98  virtual void anchor();
 
 
  104  virtual void anchor();
 
 
  110  virtual void anchor();
 
 
  116  virtual void anchor();
 
 
  122  virtual void anchor();
 
 
Defines the clang::FrontendAction interface and various convenience abstract classes (clang::ASTFront...
 
std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override
Create the AST consumer object for this action, if supported.
 
CodeGenerator * getCodeGenerator() const
 
friend class BackendConsumer
 
void EndSourceFileAction() override
Callback at the end of processing a single input.
 
bool BeginSourceFileAction(CompilerInstance &CI) override
Callback at the start of processing a single input.
 
~CodeGenAction() override
 
CodeGenAction(unsigned _Act, llvm::LLVMContext *_VMContext=nullptr)
Create a new code generation action.
 
llvm::LLVMContext * takeLLVMContext()
Take the LLVM context used by this action.
 
BackendConsumer * BEConsumer
 
bool hasIRSupport() const override
Does this action support use with IR files?
 
void ExecuteAction() override
Implement the ExecuteAction interface by running Sema on the already-initialized AST consumer.
 
std::unique_ptr< llvm::Module > takeModule()
Take the generated LLVM module, for use after the action has been run.
 
The primary public interface to the Clang code generator.
 
CompilerInstance - Helper class for managing a single instance of the Clang compiler.
 
EmitAssemblyAction(llvm::LLVMContext *_VMContext=nullptr)
 
EmitBCAction(llvm::LLVMContext *_VMContext=nullptr)
 
EmitCodeGenOnlyAction(llvm::LLVMContext *_VMContext=nullptr)
 
EmitLLVMAction(llvm::LLVMContext *_VMContext=nullptr)
 
EmitLLVMOnlyAction(llvm::LLVMContext *_VMContext=nullptr)
 
EmitObjAction(llvm::LLVMContext *_VMContext=nullptr)
 
Describes a module or submodule.
 
The JSON file list parser is used to communicate input to InstallAPI.
 
@ Module
Module linkage, which indicates that the entity can be referred to from other translation units withi...
 
Diagnostic wrappers for TextAPI types for error reporting.