[all-commits] [llvm/llvm-project] 656296: Reapply [CaptureTracking] Do not check domination

Nikita Popov via All-commits all-commits at lists.llvm.org
Sun May 16 06:49:05 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 656296b1c2eca127cb48612227fa5f381c81b53b
      https://github.com/llvm/llvm-project/commit/656296b1c2eca127cb48612227fa5f381c81b53b
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-05-16 (Sun, 16 May 2021)

  Changed paths:
    M clang/test/CodeGenObjC/synchronized.m
    M llvm/lib/Analysis/CaptureTracking.cpp
    M llvm/test/Transforms/MemCpyOpt/callslot.ll

  Log Message:
  -----------
  Reapply [CaptureTracking] Do not check domination

Reapply after adjusting the synchronized.m test case, where the
TODO is now resolved. The pointer is only captured on the exception
handling path.

-----

For the CapturesBefore tracker, it is sufficient to check that
I can not reach BeforeHere. This does not necessarily require
that BeforeHere dominates I, it can also occur if the capture
happens on an entirely disjoint path.

This change was previously accepted in D90688, but had to be
reverted due to large compile-time impact in some cases: It
increases the number of reachability queries that are performed.

After recent changes, the compile-time impact is largely mitigated,
so I'm reapplying this patch. The remaining compile-time impact
is largely proportional to changes in code-size.




More information about the All-commits mailing list