aeubanks added a comment. In D126984#3574091 <https://reviews.llvm.org/D126984#3574091>, @steplong wrote:
> In D126984#3574077 <https://reviews.llvm.org/D126984#3574077>, @aeubanks > wrote: > >> In D126984#3574046 <https://reviews.llvm.org/D126984#3574046>, >> @aaron.ballman wrote: >> >>> In D126984#3571573 <https://reviews.llvm.org/D126984#3571573>, @aeubanks >>> wrote: >>> >>>> IIRC in the past there was a strong preference to not have the pass >>>> manager support this sort of thing >>>> if you want to support this, there should be an RFC for how the >>>> optimization part of this will work as it may require invasive changes to >>>> the LLVM pass manager >>>> >>>> (if this is purely a clang frontend thing then ignore me) >>> >>> Hmm, does the pass manager have to support anything here? The only Clang >>> codegen changes are for emitting IR attributes that we already emitted >>> based on command line flags/other attributes, so I had the impression this >>> would not be invasive for the backend at all. >> >> if we're allowing individual functions to specify that they want the `-O1` >> pipeline when everything else in the module should be compiled with `-O2`, >> that's a huge change in the pass manager. but perhaps I'm misunderstanding >> the point of this patch > > That makes sense. The MSVC pragma allows 4 options, "stgy": > > | Parameter | On > | Off > | > | --------- | > ----------------------------------------------------------------------------------------------------------- > | > | > | g | Deprecated > | Deprecated > | > | s | Add MinSize > | Remove MinSize (I think this > would be difficult to do if -Os is passed on the cmdline) | > | t | Add -O2 (We can't support -O2 with this attribute so ignore) > | Add Optnone > | > | y | Add frame-pointers (We can't support -f arguments with the > attribute in this patch so we are ignoring this) | No frame-pointers (Same > thing as on) | > | > > For our use case, I think we only really see `#pragma optimize("", off)` and > `#pragma optimize("", on)`, so I'm not opposed to abandoning this patch and > just supporting the common use case for now. I think `#pragma optimize("", > on)` would just mean do nothing and apply whatever is on the command line and > `#pragma optimize("", off)` would mean add optnone to the functions below it looks good to me, I agree that we should just honor whatever optimization level the file is compiled with with `t` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126984/new/ https://reviews.llvm.org/D126984 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits