richard.barton.arm requested changes to this revision.
richard.barton.arm added a comment.

A few comments running through that need addressing.

In addition - have you checked the behaviour of this option with `-Bprefix`? 
Looking at the code for Driver.GetProgramPath, it seems like that would affect 
the behaviour of this feature so `clang --driver-mode=flang -B<prefix> 
-ffc-fortran-name=foo` might be expected to make clang call `<prefix>foo`. 
There also seems to be some logic with `-target` that might affect this. There 
are tests for this feature in test/Driver/B-opt.c that could be added to or 
adapted into a new test.



================
Comment at: clang/include/clang/Driver/Options.td:264
   MetaVarName<"<gcc-path>">;
+def fcc_fortran_name : Separate<["-"], "ffc-fortran-name">, InternalDriverOpt,
+  HelpText<"Name for native Fortran compiler">;
----------------
I'm not sure about this name. My memory is not long enough to know what ccc 
stands/stood for but git blame suggests it may have been a precursor name to 
clang. Although it might seem odd to add new options like this given the name 
perhaps doesn't mean anything anymore, I suggest copying this convention and 
make this option start with `-ccc`. I also think flang would be better than 
fortran here as it better describes what the option is doing, i.e. telling 
clang what flang is called.

So recommend `-ccc-flang-name` for the option and commensurate changes to the 
internal variables to match.


================
Comment at: clang/test/Driver/flang/clang-driver-2-frontend01.f90:12
+! t1 is the new frontend name.
+! RUN: cp %clang %t1
+! RUN: %clang --driver-mode=flang -ffc-fortran-name %basename_t.tmp1 -### %s 
2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s
----------------
Given that the RUN line runs clang with `-###` I don't think it is necessary 
for the flang binary that `-ffc-fortran-name` points to actually be present. 
Can't we simplify the test for the basic case to run with 
`-ffc-fortran-name=foo` and check for foo?

If it is required that the `-ffc-fortran-name` argument point to an executable 
file that exists it would be better to create files in the Inputs directory and 
point there.


================
Comment at: clang/test/Driver/flang/clang-driver-2-frontend01.f90:14
+! RUN: %clang --driver-mode=flang -ffc-fortran-name %basename_t.tmp1 -### %s 
2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s
+! CHECK-EMIT-OBJ-DAG: "-emit-obj"
+! CHECK-EMIT-OBJ-DAG: "-o" "{{[^"]*}}.o
----------------
I don't understand why you are checking for this option. Surely the only 
relevant check is the "ALL-LABEL" check at the top which checks for the flang 
subprocess invocation? Can you explain why you need this check?


================
Comment at: clang/test/Driver/flang/clang-driver-2-frontend01.f90:18
+! Should end in the input file.
+! ALL: "{{.*}}clang-driver-2-frontend01.f90"{{$}}
----------------
Similarly, I don't understand the need for this check on the output, although 
it would be correct.


================
Comment at: clang/test/Driver/flang/driver-2-frontend01.f90:3
+
+! Driver name is a randon name. It does not contain flag, flang or clang,
+! therefore the driver invokes flang FE.
----------------
Why does the driver name matter here. Unless I have overlooked something I 
would expect the functionality to be the same whatever the driver is called.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73951/new/

https://reviews.llvm.org/D73951



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to