[llvm-branch-commits] [asan] isInterestingAlloca: remove the isAllocaPromotable condition (PR #77221)

Fangrui Song via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Feb 14 23:19:42 PST 2024


MaskRay wrote:

> > > > We need to calculate StackSafetyGlobalInfo before inserting `__asan_memcpy`
> > 
> > 
> > Yes, but this is currently not guaranteed. This patch will ensure this property and fix the issue.
> 
> Then the correct way to fix this issue to avoid lazy getInfo(). It should be calculated at SSI = &MAM.getResult(M); Having analysis calculated before modifications is quite important here.

We can set `-mllvm -stack-safety-run` to force `getInfo`, but it seems that the current lazy `getInfo` works as this patch does.

> > > And I would expect that neither [8ed1d81](https://github.com/llvm/llvm-project/commit/8ed1d8196bef89c3099be4ce4aa65f613ab819cc) or StackSafety should apply to -O0
> > 
> > 
> > @AnnaZaks for [8ed1d81](https://github.com/llvm/llvm-project/commit/8ed1d8196bef89c3099be4ce4aa65f613ab819cc) `[asan] Skip promotable allocas to improve performance at -O0`
> 
> Turning off isAllocaPromotable is LGTM, I would probably recommend just switch opt<> default to false, and keep it just in case.
> 
> I don't see @AnnaZaks active here recently. @yln @rsundahl instead

Let me rename `ClSkipPromotableAllocas` (misleading option name even before this patch) to `ClSkipUninterestingAllocas`.
There are some cases that `ClSkipUninterestingAllocas=0` ignores AllocaInsts that `ClSkipUninterestingAllocas=1` doesn't.

FWIW I've built a stage-2 -O0 asan clang and a stage-2 -O3 asan clang. The size does not change with or without this patch.


https://github.com/llvm/llvm-project/pull/77221


More information about the llvm-branch-commits mailing list