11 #include "llvm/Support/ErrorHandling.h"
13 using namespace clang::driver;
14 using namespace llvm::opt;
18 for (
iterator it = begin(), ie = end(); it != ie; ++it)
25 case InputClass:
return "input";
26 case BindArchClass:
return "bind-arch";
27 case CudaDeviceClass:
return "cuda-device";
28 case CudaHostClass:
return "cuda-host";
29 case PreprocessJobClass:
return "preprocessor";
30 case PrecompileJobClass:
return "precompiler";
31 case AnalyzeJobClass:
return "analyzer";
32 case MigrateJobClass:
return "migrator";
33 case CompileJobClass:
return "compiler";
34 case BackendJobClass:
return "backend";
35 case AssembleJobClass:
return "assembler";
36 case LinkJobClass:
return "linker";
37 case LipoJobClass:
return "lipo";
38 case DsymutilJobClass:
return "dsymutil";
39 case VerifyDebugInfoJobClass:
return "verify-debug-info";
40 case VerifyPCHJobClass:
return "verify-pch";
43 llvm_unreachable(
"invalid class");
46 void InputAction::anchor() {}
52 void BindArchAction::anchor() {}
55 const char *_ArchName)
56 :
Action(BindArchClass, std::move(Input)), ArchName(_ArchName) {}
58 void CudaDeviceAction::anchor() {}
61 const char *ArchName,
bool AtTopLevel)
62 :
Action(CudaDeviceClass, std::move(Input)), GpuArchName(ArchName),
63 AtTopLevel(AtTopLevel) {}
65 void CudaHostAction::anchor() {}
69 :
Action(CudaHostClass, std::move(Input)), DeviceActions(_DeviceActions) {}
72 for (
iterator it = DeviceActions.begin(), ie = DeviceActions.end(); it != ie;
77 void JobAction::anchor() {}
81 :
Action(Kind, std::move(Input), Type) {}
84 :
Action(Kind, Inputs, Type) {
87 void PreprocessJobAction::anchor() {}
91 :
JobAction(PreprocessJobClass, std::move(Input), OutputType) {}
93 void PrecompileJobAction::anchor() {}
97 :
JobAction(PrecompileJobClass, std::move(Input), OutputType) {}
99 void AnalyzeJobAction::anchor() {}
103 :
JobAction(AnalyzeJobClass, std::move(Input), OutputType) {}
105 void MigrateJobAction::anchor() {}
109 :
JobAction(MigrateJobClass, std::move(Input), OutputType) {}
111 void CompileJobAction::anchor() {}
115 :
JobAction(CompileJobClass, std::move(Input), OutputType) {}
117 void BackendJobAction::anchor() {}
121 :
JobAction(BackendJobClass, std::move(Input), OutputType) {}
123 void AssembleJobAction::anchor() {}
127 :
JobAction(AssembleJobClass, std::move(Input), OutputType) {}
129 void LinkJobAction::anchor() {}
132 :
JobAction(LinkJobClass, Inputs, Type) {
135 void LipoJobAction::anchor() {}
138 :
JobAction(LipoJobClass, Inputs, Type) {
141 void DsymutilJobAction::anchor() {}
144 :
JobAction(DsymutilJobClass, Inputs, Type) {
147 void VerifyJobAction::anchor() {}
151 :
JobAction(Kind, std::move(Input), Type) {
153 "ActionClass is not a valid VerifyJobAction");
160 "ActionClass is not a valid VerifyJobAction");
163 void VerifyDebugInfoJobAction::anchor() {}
169 void VerifyPCHJobAction::anchor() {}
PrecompileJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
LinkJobAction(ActionList &Inputs, types::ID Type)
BackendJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
ActionList::iterator iterator
CudaHostAction(std::unique_ptr< Action > Input, const ActionList &DeviceActions)
LipoJobAction(ActionList &Inputs, types::ID Type)
AssembleJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
DsymutilJobAction(ActionList &Inputs, types::ID Type)
VerifyPCHJobAction(std::unique_ptr< Action > Input, types::ID Type)
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)
BindArchAction(std::unique_ptr< Action > Input, const char *ArchName)
AnalyzeJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
const char * getClassName() const
MigrateJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
CudaDeviceAction(std::unique_ptr< Action > Input, const char *ArchName, bool AtTopLevel)
CompileJobAction(std::unique_ptr< Action > Input, types::ID OutputType)
VerifyDebugInfoJobAction(std::unique_ptr< Action > Input, types::ID Type)
~CudaHostAction() override