mehdi_amini added a comment. In https://reviews.llvm.org/D30920#700574, @hfinkel wrote:
> In https://reviews.llvm.org/D30920#700557, @mehdi_amini wrote: > > > In https://reviews.llvm.org/D30920#700433, @tejohnson wrote: > > > > > In https://reviews.llvm.org/D30920#700133, @pcc wrote: > > > > > > > In https://reviews.llvm.org/D30920#700077, @tejohnson wrote: > > > > > > > > > Until everything is converted to using size attributes, it seems like > > > > > a correct fix for the bug is to accept these options in the > > > > > gold-plugin and pass through the LTO API to the PassManagerBuilder. > > > > > > > > > > > > Not necessarily. There is no requirement (from a correctness > > > > perspective) that `-Os` at link time should exactly match the behaviour > > > > of `-Os` at compile time. > > > > > > > > > Sure, but there is certainly a perception that optimization flags > > > affecting the non-LTO pipeline should similarly affect the LTO pipeline. > > > LTO should be transparent to the user, so if -Os behaves one way without > > > LTO, it seems problematic to me if it behaves a different way with LTO. > > > > > > That being said, agree that the best way to enforce that is to pass the > > > relevant flags through the IR. (On the flip side, if the user passes -O1 > > > to the link step, it does get passed through to the plugin and affects > > > the LTO optimization pipeline...) > > > > > > I agree that I don't like the discrepancy: the driver should *not* drop -Os > > silently if it passes down -O1/-O2/-O3, a warning is the minimum. > > > I don't like the discrepancy either, and I agree that we should be passing > these other flags through the IR as well (even though, in the face of > inlining, there is some ambiguity as to what the flags would mean). That > having been said, I don't see the value in the warning. Forcing users to > endure a warning solely because they use LTO and use -Os or -Oz for all of > their compilation steps, is not friendly. The warning here is only about the *link* step. > The information has been captured already so there's nothing to warn about. > You might worry about the opposite situation (the user uses only -Os or -Oz > on the link step, but not for the compile steps), and that will have no > effect. That, however, should be the expected behavior (optimization is > associated with compiling, not linking, except perhaps for specifically > called-out exceptions). The fact that our other optimization level don't work > that way is a bug, not a feature, that we should fix instead of further > exposing to our users. Yes, the issue is only about how the driver accepts Os for the link even though it has no effect (O0/https://reviews.llvm.org/owners/package/1//https://reviews.llvm.org/owners/package/2//https://reviews.llvm.org/owners/package/3/ *will* have an effect though). https://reviews.llvm.org/D30920 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits