[PATCH] D109844: [DSE] Track earliest escape, use for loads in isReadClobber.

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 17 14:58:22 PDT 2021


rnk added a comment.

Thanks for putting this together!

In D109844#3006260 <https://reviews.llvm.org/D109844#3006260>, @fhahn wrote:

> Also, @rnk mentioned seeing plenty of stores not being removed in Chrome + auto-init in PR50220. Perhaps they could let us know the impact of the change + D109907 <https://reviews.llvm.org/D109907>. And this also fixes a regression compared to legacy DSE.

I probably won't be able to do any benchmarking, but if anyone is interested, you can probably run any benchmark set you like with `-fauto-var-init=pattern` before and after this patch and check how many extra stores are removed. I strongly suspect it will help on code patterns where initialization is separate from declaration:

  struct Foo v;
  ...
  v.x = 0;
  ...
  escape(&v);

Even if this pattern isn't prevalent in common benchmark suites, I think it's pretty important to users of these security hardening flags.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109844



More information about the llvm-commits mailing list