agozillon added inline comments.
================ Comment at: clang/test/Driver/flang/flang-omp.f90:1 +! Check that flang -fc1 is invoked when in --driver-mode=flang +! and the relevant openmp and openmp offload flags are utilised ---------------- awarzynski wrote: > agozillon wrote: > > awarzynski wrote: > > > agozillon wrote: > > > > agozillon wrote: > > > > > awarzynski wrote: > > > > > > This test looks correct to me, but please note that: > > > > > > > > > > > > ``` > > > > > > ! Check that flang -fc1 is invoked when in --driver-mode=flang > > > > > > ``` > > > > > > > > > > > > yet (`%clang` instead of `%flang`) > > > > > > > > > > > > ``` > > > > > > ! RUN: %clang --driver-mode=flang -### -fopenmp %s 2>&1 | FileCheck > > > > > > --check-prefixes=CHECK-OPENMP %s > > > > > > ``` > > > > > > > > > > > > I'm not really sure whether we should be testing Flang-specific > > > > > > logic in Clang. Having said that, Flang does use `clangDriver` to > > > > > > implement its driver :) > > > > > > > > > > > > You could consider using > > > > > > https://github.com/llvm/llvm-project/blob/main/flang/test/Driver/frontend-forwarding.f90 > > > > > > instead (or add an OpenMP specific file there). > > > > > > > > > > > > Not a blocker. > > > > > Yes, I wasn't so sure either as it felt a little weird to test Flang > > > > > components inside of Clang, but as you said it is a Clang toolchain > > > > > (that this test is checking) and borrows from the clangDriver! > > > > > > > > > > I borrowed this test from other similar tests in the same folder that > > > > > test other flang specific driver logic in a similar manner, but I am > > > > > more than happy to add an additional flang specific driver test as > > > > > you mention! > > > > On further looking into the frontend-forwarding test, I don't know if > > > > it is suitable for fopenmp-is-device as it is an fc1 option and won't > > > > be forwarded from the flang-new frontend down to fc1 at the moment! > > > > > > > > I think this test will be more suitable when additional flags like the > > > > fopenmp-targets (or similar flags) that are used in this test are added > > > > to the Flang driver. As they spawn/propagate the openmp-is-device flag. > > > > However, perhaps I am incorrect. > > > > On further looking into the frontend-forwarding test, I don't know if > > > > it is suitable for fopenmp-is-device as it is an fc1 option and won't > > > > be forwarded from the flang-new frontend down to fc1 at the moment! > > > > > > It should be - that's what the logic in Flang.cpp does, no? And if it > > > doesn't, is it a deliberate design decision? > > I believe the logic in Flang.h/Flang.cpp just invokes for -fc1 not the > > Frontend driver, at least that's what it looks like from the ConstructJob > > task that Clang invokes. > > > > It's a deliberate design decision that -fopenmp-is-device is an fc1 option, > > it mimics the way Clang currently does it, which is a cc1 option, there is > > no way to directly specify it to clang without -cc1 I think. The hope is to > > keep the Flang OpenMP flags as similar to Clang's as possible for the time > > being I believe. > > I believe the logic in Flang.h/Flang.cpp just invokes for -fc1 not the > > Frontend driver. > > `flang-new -fc1` **is** the frontend driver ;-) So: > * you've added the logic to forward `-fopenmp-is-device` that should work > for both `flang-new` and `clang --driver-mode=flang`, but > * you're only testing one of these. > > There should have tests for both. In particular for `flang-new` given that > this patch adds new functionality to LLVM Flang. If that doesn't work, let's > try to figure it out together. > > > The hope is to keep the Flang OpenMP flags as similar to Clang's as > > possible for the time being I believe. > > +1 We should try as much as we can to keep Clang's and Flang's behavior > consistent :) (which you do 👍🏻 ) Ah I didn't realise that, thank you very much for clarifying that for me! :) I thought it was bypassing it with -fc1, and yjsy flang-new without it was the frontend! I still have a lot to learn, so I apologies for the misunderstanding! In this case do you mean test with "flang-new -fc1 -fopenmp-is-device" or "flang-new -fopenmp-is-device", as the latter will not be accepted by flang-new in the current patch but I do test the -fc1 variation in the omp-is-device.f90 test which is more about testing the attribute admittedly as opposed to the driver command. I don't know if testing it in the frontend-forwarding.f90 test is the right location in this case as it doesn't test with -fc1, it seems to test options are forwarded to -fc1 correctly, I could be incorrect though. In future passing an argument like -fopenmp-targets=amdgcn-amd-amdhsa to flang-new would likely expand into -fopenmp-is-device (and other arguments), like it does for Clang at the moment, so this is likely the option that would be tested inside of frontend-forwarding.f90 (and the subsequent check-case would make sure it expanded into -fopenmp-is-device and friends correctly). However, I am more than happy to add a test for the forwarding behavior, I'm just not necessarily sure what that test would look like unfortunately, so I appologies! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D144864/new/ https://reviews.llvm.org/D144864 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits