• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/clang/lib/Driver/

Lines Matching refs:Action

51 #include "clang/Driver/Action.h"
657 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
660 auto OFK = Action::OFK_Cuda;
673 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
676 auto OFK = Action::OFK_HIP;
736 C.getSingleOffloadToolChain<Action::OFK_Host>();
742 *this, TT, *HostTC, C.getInputArgs(), Action::OFK_OpenMP);
746 C.addOffloadDeviceToolChain(TC, Action::OFK_OpenMP);
1858 // Display an action graph human-readably. Action A is the "sink" node
1861 static unsigned PrintActions1(const Compilation &C, Action *A,
1862 std::map<Action *, unsigned> &Ids,
1876 os << Action::getClassName(A->getKind()) << ", ";
1885 [&](Action *A, const ToolChain *TC, const char *BoundArch) {
1910 for (Action *PreRequisite : *AL) {
1949 std::map<Action *, unsigned> Ids;
1950 for (Action *A : C.getActions())
1956 static bool ContainsCompileOrAssembleAction(const Action *A) {
1961 for (const Action *Input : A->inputs())
2004 for (Action* Act : SingleActions) {
2047 Action* LastAction = Actions.back();
2321 Action::OffloadKind AssociatedOffloadKind = Action::OFK_None;
2326 Action::OffloadKind AssociatedOffloadKind)
2343 virtual ActionBuilderReturnCode addDeviceDepences(Action *HostAction) {
2354 virtual Action* appendLinkHostActions(ActionList &AL) { return nullptr; }
2371 Action::OffloadKind getAssociatedOffloadKind() {
2394 Action *CudaFatBinary = nullptr;
2408 Action::OffloadKind OFKind)
2411 ActionBuilderReturnCode addDeviceDepences(Action *HostAction) override {
2482 auto AddTopLevel = [&](Action *A, CudaArch BoundArch) {
2514 assert(AssociatedOffloadKind == Action::OFK_Cuda ||
2515 AssociatedOffloadKind == Action::OFK_HIP);
2518 if (AssociatedOffloadKind == Action::OFK_Cuda &&
2519 !C.hasOffloadToolChain<Action::OFK_Cuda>())
2523 if (AssociatedOffloadKind == Action::OFK_HIP &&
2524 !C.hasOffloadToolChain<Action::OFK_HIP>())
2530 const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
2543 AssociatedOffloadKind == Action::OFK_Cuda
2544 ? C.getSingleOffloadToolChain<Action::OFK_Cuda>()
2545 : C.getSingleOffloadToolChain<Action::OFK_HIP>());
2606 : CudaActionBuilderBase(C, Args, Inputs, Action::OFK_Cuda) {
2647 C, Args, Ph, CudaDeviceActions[I], Action::OFK_Cuda);
2660 Action *AssembleAction = CudaDeviceActions[I];
2664 Action *BackendAction = AssembleAction->getInputs()[0];
2670 Action::OFK_Cuda);
2683 Action::OFK_Cuda);
2708 for (Action *&A : CudaDeviceActions)
2723 : CudaActionBuilderBase(C, Args, Inputs, Action::OFK_HIP) {
2816 for (Action *&A : CudaDeviceActions)
2860 Action* appendLinkHostActions(ActionList &AL) override { return AL.back(); }
2877 : DeviceActionBuilder(C, Args, Inputs, Action::OFK_OpenMP) {}
2908 for (Action *&A : OpenMPDeviceActions)
2914 ActionBuilderReturnCode addDeviceDepences(Action *HostAction) override {
2942 ToolChains[I], /*BoundArch=*/StringRef(), Action::OFK_OpenMP);
2956 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(),
2957 /*BoundArch=*/nullptr, Action::OFK_OpenMP);
2959 for (Action *&A : OpenMPDeviceActions) {
2962 DDep.add(*A, **TC, /*BoundArch=*/nullptr, Action::OFK_OpenMP);
2982 Dep.add(*A, **TI, /*BoundArch=*/nullptr, Action::OFK_OpenMP);
3001 Action::OFK_OpenMP);
3009 Action* appendLinkHostActions(ActionList &AL) override {
3022 auto OpenMPTCRange = C.getOffloadToolChains<Action::OFK_OpenMP>();
3095 Action *
3096 addDeviceDependencesToHostAction(Action *HostAction, const Arg *InputArg,
3146 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(),
3154 bool addHostDependenceToDeviceActions(Action *&HostAction,
3171 C.getSingleOffloadToolChain<Action::OFK_Host>(),
3172 /*BoundArch=*/StringRef(), Action::OFK_Host);
3198 if (OffloadKind == Action::OFK_None && CanUseBundler)
3208 bool appendTopLevelActions(ActionList &AL, Action *HostAction,
3243 Action* makeHostLinkAction() {
3256 Action* HA;
3269 Action *processHostLinkAction(Action *HostAction) {
3298 *HostAction, *C.getSingleOffloadToolChain<Action::OFK_Host>(),
3396 Action *ClangClPch = C.MakeAction<InputAction>(*InputArg, HeaderType);
3487 Action *Current = C.MakeAction<InputAction>(*InputArg, InputType);
3535 Action *NewCurrent = ConstructPhaseAction(C, Args, Phase, Current);
3565 if (Action *Wrapper = OffloadBuilder.makeHostLinkAction())
3567 Action *LA;
3601 Action *Current = C.MakeAction<InputAction>(*InputArg, InputType);
3644 Action *InputAc = C.MakeAction<InputAction>(*A, types::TY_C);
3660 Action *Driver::ConstructPhaseAction(
3661 Compilation &C, const ArgList &Args, phases::ID Phase, Action *Input,
3662 Action::OffloadKind TargetDeviceOffloadKind) const {
3743 if (isUsingLTO() && TargetDeviceOffloadKind == Action::OFK_None) {
3749 (TargetDeviceOffloadKind == Action::OFK_HIP &&
3786 for (const Action *A : C.getActions())
3788 !(A->getKind() == Action::IfsMergeJobClass ||
3790 A->getKind() == clang::driver::Action::CompileJobClass &&
3792 (A->getKind() == Action::BindArchClass && A->getInputs().size() &&
3793 A->getInputs().front()->getKind() == Action::IfsMergeJobClass)))
3809 // Set of (Action, canonical ToolChain triple) pairs we've built jobs for.
3810 std::map<std::pair<const Action *, std::string>, InputInfo> CachedResults;
3811 for (Action *A : C.getActions()) {
3831 /*TargetDeviceOffloadKind*/ Action::OFK_None);
3916 Action *CurAction = *Inputs.begin();
4103 for (Action *A : Inputs) {
4125 IsHostSelector = BaseAction->getOffloadingDeviceKind() == Action::OFK_None;
4143 const Action *CurAction = ActionChain.back().JA;
4187 Action::OffloadKind OffloadKind) {
4194 TriplePlusArch += Action::GetOffloadKindName(OffloadKind);
4199 Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch,
4201 std::map<std::pair<const Action *, std::string>, InputInfo> &CachedResults,
4202 Action::OffloadKind TargetDeviceOffloadKind) const {
4203 std::pair<const Action *, std::string> ActionTC = {
4217 Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch,
4219 std::map<std::pair<const Action *, std::string>, InputInfo> &CachedResults,
4220 Action::OffloadKind TargetDeviceOffloadKind) const {
4224 bool BuildingForOffloadDevice = TargetDeviceOffloadKind != Action::OFK_None;
4230 C.getArgsForToolChain(TC, BoundArch, Action::OFK_None);
4235 // Host Action 1 -> OffloadAction -> Host Action 2
4238 // Device Action 1 -> OffloadAction -> Device Action 2
4241 // Device Action 1 _
4243 // Host Action 1 ---> OffloadAction -> Host Action 2
4246 // Host Action 1 _
4248 // Device Action 1 ---> OffloadAction -> Device Action 2
4258 OA->doOnEachDeviceDependence([&](Action *DepA, const ToolChain *DepTC,
4268 // If 'Action 2' is host, we generate jobs for the device dependences and
4274 [&](Action *DepA, const ToolChain *DepTC, const char *DepBoundArch) {
4332 [&](Action *DepA, const ToolChain *DepTC, const char *DepBoundArch) {
4341 for (const Action *Input : Inputs) {
4391 assert(UI.DependentOffloadKind != Action::OFK_None &&
4398 std::string OffloadingPrefix = Action::GetOffloadingFileNamePrefix(
4407 UI.DependentOffloadKind == Action::OFK_HIP,
4416 if (TargetDeviceOffloadKind == Action::OFK_HIP) {
4417 if (UI.DependentOffloadKind == Action::OFK_Host)
4431 std::pair<const Action *, std::string> ActionTC = {
4441 std::string OffloadingPrefix = Action::GetOffloadingFileNamePrefix(
4637 bool IsHIPNoRDC = JA.getOffloadingDeviceKind() == Action::OFK_HIP &&
4677 JA.getOffloadingDeviceKind() == Action::OFK_HIP &&