jhuber6 added inline comments.
================ Comment at: clang/lib/Driver/Driver.cpp:4215 Action *HostAction) const { - if (!isa<CompileJobAction>(HostAction)) + if (Args.hasArg(options::OPT_offload_host_only)) return HostAction; ---------------- tra wrote: > jhuber6 wrote: > > tra wrote: > > > This will not always be correct. E.g. `--offload-host-only > > > --offload-host-device` would be true here, but we would still want to > > > compile for both and device. > > > > > > Is there a reason we can no longer rely on `HostAction`? > > Guess I should just use the last argument. Host action is used below, can > > probably merge these if statements. > I guess the general idea is to avoid the ambiguity about what controls the > behavior of the function. Is that the `Args`, or the `HostAction`? > Ideally I'd prefer to parse command line options once, save results somewhere > we could use them and then use those flargs to control the behavior, > regardless of which options were used to specify it. E.g. > CUDA/HIPActionBuilder classes have these member fields: > ``` > bool CompileHostOnly = false; > bool CompileDeviceOnly = false; > > ... > Arg *PartialCompilationArg = Args.getLastArg( > options::OPT_cuda_host_only, options::OPT_cuda_device_only, > options::OPT_cuda_compile_host_device); > CompileHostOnly = PartialCompilationArg && > PartialCompilationArg->getOption().matches( > options::OPT_cuda_host_only); > CompileDeviceOnly = PartialCompilationArg && > PartialCompilationArg->getOption().matches( > options::OPT_cuda_device_only); > ... > ``` > I more or less copied that below, but I suppose we are recalculating them each phase. We don't have a monolithic class with my new implementation, but I suppose I could add these to the Compilation or something if we don't want to recalculate it. Beside that, does anything else seem amiss? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124220/new/ https://reviews.llvm.org/D124220 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits