10 #ifndef LLVM_CLANG_DRIVER_COMPILATION_H
11 #define LLVM_CLANG_DRIVER_COMPILATION_H
15 #include "llvm/ADT/DenseMap.h"
16 #include "llvm/Support/Path.h"
42 llvm::opt::InputArgList *Args;
46 llvm::opt::DerivedArgList *TranslatedArgs;
56 llvm::DenseMap<std::pair<const ToolChain *, const char *>,
57 llvm::opt::DerivedArgList *> TCArgs;
60 llvm::opt::ArgStringList TempFiles;
70 const StringRef **Redirects;
77 llvm::opt::InputArgList *Args,
78 llvm::opt::DerivedArgList *TranslatedArgs);
85 const llvm::opt::InputArgList &
getInputArgs()
const {
return *Args; }
87 const llvm::opt::DerivedArgList &
getArgs()
const {
return *TranslatedArgs; }
89 llvm::opt::DerivedArgList &
getArgs() {
return *TranslatedArgs; }
99 const llvm::opt::ArgStringList &
getTempFiles()
const {
return TempFiles; }
104 return FailureResultFiles;
115 const char *BoundArch);
120 TempFiles.push_back(Name);
127 ResultFiles[JA] = Name;
134 FailureResultFiles[JA] = Name;
142 bool CleanupFile(
const char *File,
bool IssueErrors =
false)
const;
149 bool IssueErrors =
false)
const;
159 bool IssueErrors =
false)
const;
174 SmallVectorImpl<std::pair<int, const Command *>> &FailingCommands)
const;
const Driver & getDriver() const
const ArgStringMap & getResultFiles() const
bool CleanupFile(const char *File, bool IssueErrors=false) const
const llvm::opt::DerivedArgList & getArgs() const
Compilation(const Driver &D, const ToolChain &DefaultToolChain, llvm::opt::InputArgList *Args, llvm::opt::DerivedArgList *TranslatedArgs)
llvm::opt::DerivedArgList & getArgs()
bool CleanupFileList(const llvm::opt::ArgStringList &Files, bool IssueErrors=false) const
void addCommand(std::unique_ptr< Command > C)
JobList - A sequence of jobs to perform.
void addJob(std::unique_ptr< Command > J)
Add a job to the list (taking ownership).
llvm::DenseMap< const JobAction *, const char * > ArgStringMap
ArgStringMap - Type used to map a JobAction to its result file.
bool CleanupFileMap(const ArgStringMap &Files, const JobAction *JA, bool IssueErrors=false) const
const char * addResultFile(const char *Name, const JobAction *JA)
const llvm::opt::DerivedArgList & getArgsForToolChain(const ToolChain *TC, const char *BoundArch)
const ToolChain & getDefaultToolChain() const
const ArgStringMap & getFailureResultFiles() const
const ActionList & getActions() const
ActionList & getActions()
void ExecuteJobs(const JobList &Jobs, SmallVectorImpl< std::pair< int, const Command * >> &FailingCommands) const
int ExecuteCommand(const Command &C, const Command *&FailingCommand) const
const llvm::opt::InputArgList & getInputArgs() const
StringRef getSysRoot() const
Returns the sysroot path.
const char * addFailureResultFile(const char *Name, const JobAction *JA)
const llvm::opt::ArgStringList & getTempFiles() const
bool isForDiagnostics()
Return true if we're compiling for diagnostics.
const char * addTempFile(const char *Name)
const JobList & getJobs() const
void initCompilationForDiagnostics()