]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r362341:
authorDimitry Andric <dim@FreeBSD.org>
Sun, 21 Jun 2020 09:24:47 +0000 (09:24 +0000)
committerDimitry Andric <dim@FreeBSD.org>
Sun, 21 Jun 2020 09:24:47 +0000 (09:24 +0000)
commit56d47c256d4052289a4910e90253624b68bfa498
tree340c86921d1ea32ddf2cb9a29e3a8026bad7db05
parent92a33d39aabf1c2672660c8c23324cce2d7ddac0
MFC r362341:

Merge commit 0cecafd647cc from llvm git (by Alina Sbirlea):

  [BasicAA] Make BasicAA a cfg pass.

  Summary:
  Part of the changes in D44564 made BasicAA not CFG only due to it
  using PhiAnalysisValues which may have values invalidated. Subsequent
  patches (rL340613) appear to have addressed this limitation.

  BasicAA should not be invalidated by non-CFG-altering passes. A
  concrete example is MemCpyOpt which preserves CFG, but we are testing
  it invalidates BasicAA.

  llvm-dev RFC:
  https://groups.google.com/forum/#!topic/llvm-dev/eSPXuWnNfzM

  Reviewers: john.brawn, sebpop, hfinkel, brzycki

  Subscribers: hiraditya, llvm-commits

  Tags: #llvm

  Differential Revision: https://reviews.llvm.org/D74353

This fixes an issue with clang's -fintegrated-cc1 feature, which could
make it output slightly different assembly code, depending on the way it
was invoked.

In r361755 we attempted to work around it by disabling the integrated
cc1 stage, but it did not solve the root cause for all situations.

Extensive testing and bisecting showed that the above change finally
makes the output deterministic, even if -fintegrated-cc1 is on.

Reported by: Fabian Keil <fk@fabiankeil.de>
PR: 246630
contrib/llvm-project/llvm/lib/Analysis/BasicAliasAnalysis.cpp
lib/clang/include/clang/Config/config.h