efriedma added inline comments.

================
Comment at: clang/lib/Driver/ToolChains/CommonArgs.cpp:498
+    CmdArgs.push_back(
+        Args.MakeArgString(Twine("-plugin-opt=-target-abi=") + ABIName));
 }
----------------
khchen wrote:
> efriedma wrote:
> > I don't think this change is right.  In general, target features should be 
> > encoded in bitcode files.  This allows compiling different files with 
> > different target features, and using runtime detection to only run certain 
> > codepaths.  And it makes sure that we end up with a sane result if the user 
> > doesn't pass target feature flags on the link line.
> > 
> > Also, it probably isn't appropriate to make target-independent changes in a 
> > commit tagged [RISCV]; most people would assume a change marked like that 
> > doesn't have target-independent effects.
> > 
> > (Sorry about the delayed response to this review; I only just ran into 
> > this.)
> > I don't think this change is right. In general, target features should be 
> > encoded in bitcode files. This allows compiling different files with 
> > different target features, and using runtime detection to only run certain 
> > codepaths. And it makes sure that we end up with a sane result if the user 
> > doesn't pass target feature flags on the link line.
> > 
> 
> I'm curious about your scenario, LTO will link two bitcodes file into one, so 
> which target-features should be kept in final bitcode since different files 
> have different target features? For example, one target features" is 
> "+armv7-a" and another is "+armv8-a". 
> 
> I guess maybe your case is they are same target-features in different files, 
> but this patch will overwrite the encoded target-feature as default.
> 
> anyway, I agree with you. I found the target features does not encoded in 
> bitcode files when enabling LTO in RISCV, I will fixed it and revert the 
> target feature part, thanks.
> 
> 
> > Also, it probably isn't appropriate to make target-independent changes in a 
> > commit tagged [RISCV]; most people would assume a change marked like that 
> > doesn't have target-independent effects.
> > 
> sorry,  I will take care of it in next time.
> 
> > (Sorry about the delayed response to this review; I only just ran into 
> > this.)
> 
> 
Target features are encoded into IR on a per-function basis, so we can keep 
both.

But yes, I'm more worried about the implicit expectation that the target flags 
are specified on the link line; this isn't reliably true with common build 
systems.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67409



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

Reply via email to