Lines Matching refs:Action
748 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>(); in CreateOffloadingDeviceToolChains()
750 auto OFK = Action::OFK_Cuda; in CreateOffloadingDeviceToolChains()
770 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>(); in CreateOffloadingDeviceToolChains()
771 auto OFK = Action::OFK_HIP; in CreateOffloadingDeviceToolChains()
818 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>(); in CreateOffloadingDeviceToolChains()
826 getOffloadArchs(C, C.getArgs(), Action::OFK_OpenMP, nullptr); in CreateOffloadingDeviceToolChains()
870 C.getSingleOffloadToolChain<Action::OFK_Host>(); in CreateOffloadingDeviceToolChains()
877 *this, TT, *HostTC, C.getInputArgs(), Action::OFK_OpenMP); in CreateOffloadingDeviceToolChains()
888 C.addOffloadDeviceToolChain(TC, Action::OFK_OpenMP); in CreateOffloadingDeviceToolChains()
2140 static unsigned PrintActions1(const Compilation &C, Action *A, in PrintActions1()
2141 std::map<Action *, unsigned> &Ids, in PrintActions1() argument
2155 os << Action::getClassName(A->getKind()) << ", ";
2164 [&](Action *A, const ToolChain *TC, const char *BoundArch) { in __anon7f4eb1310802()
2189 for (Action *PreRequisite : *AL) {
2228 std::map<Action *, unsigned> Ids; in PrintActions()
2229 for (Action *A : C.getActions()) in PrintActions()
2235 static bool ContainsCompileOrAssembleAction(const Action *A) { in ContainsCompileOrAssembleAction()
2279 for (Action* Act : SingleActions) { in BuildUniversalActions()
2322 Action* LastAction = Actions.back(); in BuildUniversalActions()
2643 std::map<Action *, const Arg *> HostActionToInputArgMap;
2675 Action::OffloadKind AssociatedOffloadKind = Action::OFK_None;
2680 Action::OffloadKind AssociatedOffloadKind) in DeviceActionBuilder()
2697 virtual ActionBuilderReturnCode addDeviceDepences(Action *HostAction) { in addDeviceDepences()
2708 virtual Action* appendLinkHostActions(ActionList &AL) { return nullptr; } in appendLinkHostActions()
2725 Action::OffloadKind getAssociatedOffloadKind() { in getAssociatedOffloadKind()
2760 Action *CudaFatBinary = nullptr;
2782 Action::OffloadKind OFKind) in CudaActionBuilderBase()
2785 ActionBuilderReturnCode addDeviceDepences(Action *HostAction) override { in addDeviceDepences()
2881 auto AddTopLevel = [&](Action *A, TargetID TargetID) { in appendTopLevelActions()
2919 assert(AssociatedOffloadKind == Action::OFK_Cuda || in initialize()
2920 AssociatedOffloadKind == Action::OFK_HIP); in initialize()
2923 if (AssociatedOffloadKind == Action::OFK_Cuda && in initialize()
2924 !C.hasOffloadToolChain<Action::OFK_Cuda>()) in initialize()
2928 if (AssociatedOffloadKind == Action::OFK_HIP && in initialize()
2929 !C.hasOffloadToolChain<Action::OFK_HIP>()) in initialize()
2935 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>(); in initialize()
2948 AssociatedOffloadKind == Action::OFK_Cuda in initialize()
2949 ? C.getSingleOffloadToolChain<Action::OFK_Cuda>() in initialize()
2950 : C.getSingleOffloadToolChain<Action::OFK_HIP>()); in initialize()
3039 : CudaActionBuilderBase(C, Args, Inputs, Action::OFK_Cuda) { in CudaActionBuilder()
3095 C, Args, Ph, CudaDeviceActions[I], Action::OFK_Cuda); in getDeviceDependences()
3108 Action *AssembleAction = CudaDeviceActions[I]; in getDeviceDependences()
3112 Action *BackendAction = AssembleAction->getInputs()[0]; in getDeviceDependences()
3117 DDep.add(*A, *ToolChains.front(), GpuArchList[I], Action::OFK_Cuda); in getDeviceDependences()
3130 Action::OFK_Cuda); in getDeviceDependences()
3155 for (Action *&A : CudaDeviceActions) in getDeviceDependences()
3176 : CudaActionBuilderBase(C, Args, Inputs, Action::OFK_HIP) { in HIPActionBuilder()
3249 Action *BackendAction = nullptr; in getDeviceDependences()
3324 for (Action *&A : CudaDeviceActions) in getDeviceDependences()
3399 Action* appendLinkHostActions(ActionList &AL) override { return AL.back(); } in appendLinkHostActions()
3416 : DeviceActionBuilder(C, Args, Inputs, Action::OFK_OpenMP) {} in OpenMPActionBuilder()
3447 for (Action *&A : OpenMPDeviceActions) in getDeviceDependences()
3453 ActionBuilderReturnCode addDeviceDepences(Action *HostAction) override { in addDeviceDepences()
3481 ToolChains[I], /*BoundArch=*/StringRef(), Action::OFK_OpenMP); in addDeviceDepences()
3495 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(), in addDeviceDepences()
3496 /*BoundArch=*/nullptr, Action::OFK_OpenMP); in addDeviceDepences()
3498 for (Action *&A : OpenMPDeviceActions) { in addDeviceDepences()
3501 DDep.add(*A, **TC, /*BoundArch=*/nullptr, Action::OFK_OpenMP); in addDeviceDepences()
3521 Dep.add(*A, **TI, /*BoundArch=*/nullptr, Action::OFK_OpenMP); in appendTopLevelActions()
3540 Action::OFK_OpenMP); in appendLinkDeviceActions()
3548 Action* appendLinkHostActions(ActionList &AL) override { in appendLinkHostActions()
3561 auto OpenMPTCRange = C.getOffloadToolChains<Action::OFK_OpenMP>(); in initialize()
3631 void recordHostAction(Action *HostAction, const Arg *InputArg) { in recordHostAction()
3645 Action *
3646 addDeviceDependencesToHostAction(Action *HostAction, const Arg *InputArg, in addDeviceDependencesToHostAction()
3697 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(), in addDeviceDependencesToHostAction()
3705 bool addHostDependenceToDeviceActions(Action *&HostAction, in addHostDependenceToDeviceActions()
3725 C.getSingleOffloadToolChain<Action::OFK_Host>(), in addHostDependenceToDeviceActions()
3726 /*BoundArch=*/StringRef(), Action::OFK_Host); in addHostDependenceToDeviceActions()
3753 if (OffloadKind == Action::OFK_None && CanUseBundler) in addHostDependenceToDeviceActions()
3763 bool appendTopLevelActions(ActionList &AL, Action *HostAction, in appendTopLevelActions()
3810 Action *makeHostLinkAction() { in makeHostLinkAction()
3818 Action* HA = nullptr; in makeHostLinkAction()
3836 Action *processHostLinkAction(Action *HostAction) { in processHostLinkAction()
3877 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(), in processHostLinkAction()
3977 Action *ClangClPch = C.MakeAction<InputAction>(*InputArg, HeaderType); in handleArguments()
4053 (C.isOffloadingHostKind(Action::OFK_OpenMP) && in BuildActions()
4076 Action *Current = C.MakeAction<InputAction>(*InputArg, InputType); in BuildActions()
4135 Action *NewCurrent = ConstructPhaseAction(C, Args, Phase, Current); in BuildActions()
4186 if (Action *Wrapper = OffloadBuilder.makeHostLinkAction()) in BuildActions()
4188 Action *LA; in BuildActions()
4228 Action *Current = C.MakeAction<InputAction>(*InputArg, InputType); in BuildActions()
4271 Action *InputAc = C.MakeAction<InputAction>(*A, types::TY_C); in BuildActions()
4328 Action::OffloadKind Kind) { in getConflictOffloadArchCombination()
4329 if (Kind != Action::OFK_HIP) in getConflictOffloadArchCombination()
4339 Action::OffloadKind Kind, const ToolChain *TC) const { in getOffloadArchs()
4389 if (Kind == Action::OFK_Cuda) in getOffloadArchs()
4391 else if (Kind == Action::OFK_HIP) in getOffloadArchs()
4393 else if (Kind == Action::OFK_OpenMP) in getOffloadArchs()
4403 Action *Driver::BuildOffloadingActions(Compilation &C, in BuildOffloadingActions()
4406 Action *HostAction) const { in BuildOffloadingActions()
4418 const Action::OffloadKind OffloadKinds[] = { in BuildOffloadingActions()
4419 Action::OFK_OpenMP, Action::OFK_Cuda, Action::OFK_HIP}; in BuildOffloadingActions()
4421 for (Action::OffloadKind Kind : OffloadKinds) { in BuildOffloadingActions()
4436 if ((Kind == Action::OFK_Cuda && !types::isCuda(InputType)) || in BuildOffloadingActions()
4437 (Kind == Action::OFK_HIP && !types::isHIP(InputType))) in BuildOffloadingActions()
4461 for (Action *&A : DeviceActions) { in BuildOffloadingActions()
4465 Kind == Action::OFK_OpenMP) { in BuildOffloadingActions()
4471 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(), in BuildOffloadingActions()
4482 for (Action *&A : DeviceActions) { in BuildOffloadingActions()
4483 if (A->getType() != types::TY_Object || Kind != Action::OFK_HIP || in BuildOffloadingActions()
4491 for (Action *A : DeviceActions) { in BuildOffloadingActions()
4507 if (C.isOffloadingHostKind(Action::OFK_Cuda) && in BuildOffloadingActions()
4511 Action *FatbinAction = in BuildOffloadingActions()
4513 DDep.add(*FatbinAction, *C.getSingleOffloadToolChain<Action::OFK_Cuda>(), in BuildOffloadingActions()
4514 nullptr, Action::OFK_Cuda); in BuildOffloadingActions()
4515 } else if (C.isOffloadingHostKind(Action::OFK_HIP) && in BuildOffloadingActions()
4520 Action *FatbinAction = in BuildOffloadingActions()
4522 DDep.add(*FatbinAction, *C.getSingleOffloadToolChain<Action::OFK_HIP>(), in BuildOffloadingActions()
4523 nullptr, Action::OFK_HIP); in BuildOffloadingActions()
4527 Action *PackagerAction = in BuildOffloadingActions()
4529 DDep.add(*PackagerAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(), in BuildOffloadingActions()
4530 nullptr, Action::OFK_None); in BuildOffloadingActions()
4534 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(), in BuildOffloadingActions()
4540 Action *Driver::ConstructPhaseAction( in ConstructPhaseAction()
4541 Compilation &C, const ArgList &Args, phases::ID Phase, Action *Input, in ConstructPhaseAction()
4542 Action::OffloadKind TargetDeviceOffloadKind) const { in ConstructPhaseAction()
4633 if (isUsingLTO() && TargetDeviceOffloadKind == Action::OFK_None) { in ConstructPhaseAction()
4639 TargetDeviceOffloadKind != Action::OFK_None) { in ConstructPhaseAction()
4645 (TargetDeviceOffloadKind == Action::OFK_HIP && in ConstructPhaseAction()
4682 for (const Action *A : C.getActions()) in BuildJobs()
4684 !(A->getKind() == Action::IfsMergeJobClass || in BuildJobs()
4686 A->getKind() == clang::driver::Action::CompileJobClass && in BuildJobs()
4688 (A->getKind() == Action::BindArchClass && A->getInputs().size() && in BuildJobs()
4689 A->getInputs().front()->getKind() == Action::IfsMergeJobClass))) in BuildJobs()
4715 std::map<std::pair<const Action *, std::string>, InputInfoList> CachedResults; in BuildJobs()
4716 for (Action *A : C.getActions()) { in BuildJobs()
4736 /*TargetDeviceOffloadKind*/ Action::OFK_None); in BuildJobs()
4880 Action *CurAction = *Inputs.begin(); in getPrevDependentAction()
5079 for (Action *A : Inputs) { in combineWithPreprocessor()
5101 IsHostSelector = BaseAction->getOffloadingDeviceKind() == Action::OFK_None; in ToolSelector()
5119 const Action *CurAction = ActionChain.back().JA; in getTool()
5163 Action::OffloadKind OffloadKind) { in GetTriplePlusArchString()
5170 TriplePlusArch += Action::GetOffloadKindName(OffloadKind); in GetTriplePlusArchString()
5175 Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch, in BuildJobsForAction()
5177 std::map<std::pair<const Action *, std::string>, InputInfoList> in BuildJobsForAction() argument
5179 Action::OffloadKind TargetDeviceOffloadKind) const { in BuildJobsForAction()
5180 std::pair<const Action *, std::string> ActionTC = { in BuildJobsForAction()
5194 Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch, in BuildJobsForActionNoCache()
5196 std::map<std::pair<const Action *, std::string>, InputInfoList> in BuildJobsForActionNoCache() argument
5198 Action::OffloadKind TargetDeviceOffloadKind) const { in BuildJobsForActionNoCache()
5202 bool BuildingForOffloadDevice = TargetDeviceOffloadKind != Action::OFK_None; in BuildJobsForActionNoCache()
5208 C.getArgsForToolChain(TC, BoundArch, Action::OFK_None); in BuildJobsForActionNoCache()
5236 OA->doOnEachDeviceDependence([&](Action *DepA, const ToolChain *DepTC, in BuildJobsForActionNoCache()
5252 [&](Action *DepA, const ToolChain *DepTC, const char *DepBoundArch) { in BuildJobsForActionNoCache()
5265 std::pair<const Action *, std::string> ActionTC = { in BuildJobsForActionNoCache()
5317 A->getOffloadingDeviceKind() == Action::OFK_OpenMP) { in BuildJobsForActionNoCache()
5340 [&](Action *DepA, const ToolChain *DepTC, const char *DepBoundArch) { in BuildJobsForActionNoCache()
5349 for (const Action *Input : Inputs) { in BuildJobsForActionNoCache()
5405 assert(UI.DependentOffloadKind != Action::OFK_None && in BuildJobsForActionNoCache()
5412 std::string OffloadingPrefix = Action::GetOffloadingFileNamePrefix( in BuildJobsForActionNoCache()
5421 UI.DependentOffloadKind == Action::OFK_HIP, in BuildJobsForActionNoCache()
5430 if (TargetDeviceOffloadKind == Action::OFK_HIP) { in BuildJobsForActionNoCache()
5431 if (UI.DependentOffloadKind == Action::OFK_Host) in BuildJobsForActionNoCache()
5445 std::pair<const Action *, std::string> ActionTC = { in BuildJobsForActionNoCache()
5455 std::string OffloadingPrefix = Action::GetOffloadingFileNamePrefix( in BuildJobsForActionNoCache()
5458 !(A->getOffloadingHostActiveKinds() == Action::OFK_None || in BuildJobsForActionNoCache()
5546 static bool HasPreprocessOutput(const Action &JA) { in HasPreprocessOutput()
5693 bool IsHIPNoRDC = JA.getOffloadingDeviceKind() == Action::OFK_HIP && in GetNamedOutputPath()
5742 JA.getOffloadingDeviceKind() == Action::OFK_HIP && in GetNamedOutputPath()
6144 const Action::OffloadKind &TargetDeviceOffloadKind) const { in getOffloadingDeviceToolChain()
6153 case Action::OFK_HIP: { in getOffloadingDeviceToolChain()