michaelplatings added inline comments.

================
Comment at: clang/include/clang/Driver/Multilib.h:25
 namespace driver {
 
 /// This corresponds to a single GCC Multilib, or a segment of one controlled
----------------
peter.smith wrote:
> It took a bit of reading to work out what the relationship between Multilib, 
> MultilibVariant, MultilibSet and MultilibVariantBuilder are and how they are 
> expected to be used.
> 
> IIUC MultilibVariant and MultilibVariantBuilder are used to construct 
> Multilib and MultilibSet, which are expected to be immutable post 
> construction.
> 
> Will be worth either a comment describing the relation ship or potentially 
> write up the design in the clang docs and reference it from here. 
Yeah the naming was not intuitive, a hangover from one of the previous forms of 
this change. I've changed it so that `MultilibBuilder` creates `Multilib` and 
`MultilibSetBuilder` creates `MultilibSet`. That should make the comments less 
necessary, but I've added those too.


================
Comment at: clang/lib/Driver/ToolChains/BareMetal.cpp:32
 
-static Multilib makeMultilib(StringRef commonSuffix) {
-  return Multilib(commonSuffix, commonSuffix, commonSuffix);
+static MultilibBuilderVariant makeMultilib(StringRef commonSuffix) {
+  return MultilibBuilderVariant(commonSuffix, commonSuffix, commonSuffix);
----------------
peter.smith wrote:
> Worth making this a lambda in findRISCVMultilibs? Purely subjective opinion 
> here as there could be an attempt to limit changes.
> there could be an attempt to limit changes.
Indeed. I'd rather leave this in place for that reason.


================
Comment at: clang/lib/Driver/ToolChains/BareMetal.cpp:44
   if (TargetTriple.isRISCV64()) {
-    Multilib Imac = 
makeMultilib("").flag("+march=rv64imac").flag("+mabi=lp64");
-    Multilib Imafdc = makeMultilib("/rv64imafdc/lp64d")
-                          .flag("+march=rv64imafdc")
-                          .flag("+mabi=lp64d");
+    auto Imac = makeMultilib("").flag("+march=rv64imac").flag("+mabi=lp64");
+    auto Imafdc = makeMultilib("/rv64imafdc/lp64d")
----------------
peter.smith wrote:
> Wondering if we've lost information here by going to auto. We're really 
> making a MultilibVariant here. Perhaps worth renaming makeMultilib to 
> makeMultilibVariant?
I've gone back to declaring the type explicitly and renamed the function to 
`makeMultilibBuilder` since `MultilibBuilder` is the return type now.


================
Comment at: clang/lib/Driver/ToolChains/Gnu.cpp:1049
 
-static Multilib makeMultilib(StringRef commonSuffix) {
-  return Multilib(commonSuffix, commonSuffix, commonSuffix);
+static MultilibBuilderVariant makeMultilib(StringRef commonSuffix) {
+  return MultilibBuilderVariant(commonSuffix, commonSuffix, commonSuffix);
----------------
peter.smith wrote:
> Similar comment to BareMetal, is it worth renaming to makeMultilibVariant
Renamed to `makeMultilibBuilder` since `MultilibBuilder` is the return type now.


================
Comment at: clang/lib/Driver/ToolChains/Gnu.cpp:1737
           });
 
   Multilib::flags_list Flags;
----------------
peter.smith wrote:
> Although I'm not too bothered myself, some people prefer to keep changes in 
> whitespace to a separate NFC patch for the benefit of git annotate.
git-clang-format insists on changing it. A removed line won't show up in git 
annotate/blame (unless you're doing some extreme reverse-blaming activity, 
which mostly people don't) so I think it's best to let git-clang-format do its 
thing.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142893

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

Reply via email to