10 #ifndef LLVM_CLANG_DRIVER_ACTION_H
11 #define LLVM_CLANG_DRIVER_ACTION_H
15 #include "llvm/ADT/SmallVector.h"
73 unsigned OwnsInputs : 1;
77 : Kind(Kind), Type(Type), OwnsInputs(
true) {}
79 : Kind(Kind), Type(Type), Inputs(1, Input.release()), OwnsInputs(
true) {
82 : Kind(Kind),
Type(Input->
getType()), Inputs(1, Input.release()),
85 : Kind(Kind), Type(Type), Inputs(Inputs), OwnsInputs(
true) {}
109 virtual void anchor();
110 const llvm::opt::Arg &Input;
123 virtual void anchor();
126 const char *ArchName;
139 virtual void anchor();
141 const char *GpuArchName;
159 virtual void anchor();
174 virtual void anchor();
187 void anchor()
override;
197 void anchor()
override;
207 void anchor()
override;
217 void anchor()
override;
227 void anchor()
override;
237 void anchor()
override;
247 void anchor()
override;
257 void anchor()
override;
267 void anchor()
override;
277 void anchor()
override;
287 void anchor()
override;
299 void anchor()
override;
308 void anchor()
override;
static bool classof(const Action *A)
bool isAtTopLevel() const
const char * getGpuArchName() const
PrecompileJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
static bool classof(const Action *A)
const ActionList & getDeviceActions() const
static bool classof(const Action *A)
LinkJobAction(ActionList &Inputs, types::ID Type)
Action(ActionClass Kind, types::ID Type)
BackendJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
ActionList::iterator iterator
types::ID getType() const
CudaHostAction(std::unique_ptr< Action > Input, const ActionList &DeviceActions)
LipoJobAction(ActionList &Inputs, types::ID Type)
static bool classof(const Action *A)
const_iterator end() const
ActionClass getKind() const
AssembleJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
static bool classof(const Action *A)
ActionList & getDeviceActions()
static bool classof(const Action *A)
ActionList::size_type size_type
DsymutilJobAction(ActionList &Inputs, types::ID Type)
static bool classof(const Action *A)
void setOwnsInputs(bool Value)
VerifyPCHJobAction(std::unique_ptr< Action > Input, types::ID Type)
Action(ActionClass Kind, std::unique_ptr< Action > Input, types::ID Type)
static bool classof(const Action *A)
JobAction(ActionClass Kind, std::unique_ptr< Action > Input, types::ID Type)
PreprocessJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
VerifyJobAction(ActionClass Kind, std::unique_ptr< Action > Input, types::ID Type)
static bool classof(const Action *A)
static bool classof(const Action *A)
ActionList::const_iterator const_iterator
const ActionList & getInputs() const
BindArchAction(std::unique_ptr< Action > Input, const char *ArchName)
static bool classof(const Action *A)
const char * getArchName() const
AnalyzeJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
static bool classof(const Action *A)
const char * getClassName() const
const_iterator begin() const
Action(ActionClass Kind, const ActionList &Inputs, types::ID Type)
MigrateJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
CudaDeviceAction(std::unique_ptr< Action > Input, const char *ArchName, bool AtTopLevel)
static bool classof(const Action *A)
Action(ActionClass Kind, std::unique_ptr< Action > Input)
CompileJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
static bool classof(const Action *A)
static bool classof(const Action *A)
static bool classof(const Action *A)
VerifyDebugInfoJobAction(std::unique_ptr< Action > Input, types::ID Type)
~CudaHostAction() override
static bool classof(const Action *A)