[PATCH] D75936: Add a Pass to X86 that builds a Condensed CFG for Load Value Injection (LVI) Gadgets [4/6]

Nikita Popov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 13 09:11:05 PDT 2020


nikic added a comment.

In D75936#2032090 <https://reviews.llvm.org/D75936#2032090>, @craig.topper wrote:

> In D75936#2032078 <https://reviews.llvm.org/D75936#2032078>, @sconstab wrote:
>
> > In D75936#2032027 <https://reviews.llvm.org/D75936#2032027>, @nikic wrote:
> >
> > > This change causes a 0.8% compile-time regression for unoptimized builds <http://llvm-compile-time-tracker.com/compare.php?from=a1b04aaea210a9a9fbe0cd9dd7f874e12fa97585&to=e97a3e5d9d428c4d455fa1b1982728bb71f0c397&stat=instructions>. Based on the pipeline test diffs, I expect this is because the new pass requests a bunch of analyses, which it most likely (LVI load hardening disabled) will not need. Would it be possible to compute the analyses only if LVI load hardening is actually enabled?
> >
> >
> > @craig.topper Do you have any ideas on how this could be done?
>
>
> Unfortunately due to LTO the need for LVI hardening is carried as a function attribute. The pass manager system doesn't allow for running different passes per function. So I don't have any good ideas of how to do that.


Hm, I see. One possibility would be to make those analyses lazy, but that's a larger change.

Possibly a pragmatic choice would be to not support this feature at O0? It does not seem relevant for non-production binaries. The relative impact of a couple unnecessary analysis passes is much higher at `O0` than it is at `O3`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D75936





More information about the cfe-commits mailing list