[PATCH] D143565: [Asan] Ensure unpoisonning doesn't get inlined unnecessarily due to small holes in the mask
Sylvain Audi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 28 09:26:46 PDT 2023
saudi added a comment.
In D143565#4620489 <https://reviews.llvm.org/D143565#4620489>, @vitalybuka wrote:
> Is this still relevant?
Hello, yes it still is to us, we are using this in our fork. I didn't have time to address the comments. and I would need some time also to get back into it, understanding the specifics and how to refactor this.
The real-life context that made this optimization necessary:
- Windows x64 target, with EH enabled
- a large function with many blocks, most of which contained local variables often with small gaps between them due to alignment etc. (it was a catch2 framework unittest, where a `TEST_CASE` contained a big hierarchy `SECTION`)
With EH enabled, a large number of cleanup pads were generated, causing a lot of variables deinitialization code.
Having small gaps between variables, the shadow poisoning would be split into many inlined parts
The result was very large code size output by asan (>100MB object files), most of which was poisoning code.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D143565/new/
https://reviews.llvm.org/D143565
More information about the llvm-commits
mailing list