[all-commits] [llvm/llvm-project] 5c5cf8: [MemorySSA] Moving at the end often means before t...

Alina Sbirlea via All-commits all-commits at lists.llvm.org
Wed Nov 20 17:13:21 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5c5cf899ef2fda1d3306b1e5c384ae062b80b672
      https://github.com/llvm/llvm-project/commit/5c5cf899ef2fda1d3306b1e5c384ae062b80b672
  Author: Alina Sbirlea <asbirlea at google.com>
  Date:   2019-11-20 (Wed, 20 Nov 2019)

  Changed paths:
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/lib/Analysis/LoopInfo.cpp
    M llvm/lib/Analysis/MemorySSAUpdater.cpp
    M llvm/lib/Transforms/Scalar/GVNHoist.cpp
    M llvm/lib/Transforms/Scalar/LICM.cpp
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    A llvm/test/Analysis/MemorySSA/pr44027.ll

  Log Message:
  -----------
  [MemorySSA] Moving at the end often means before terminator.

Moving accesses in MemorySSA at InsertionPlace::End, when an instruction is
moved into a block, almost always means insert at the end of the block, but
before the block terminator. This matters when the block terminator is a
MemoryAccess itself (an invoke), and the insertion must be done before
the terminator for the update to be correct.

Insert an additional position: InsertionPlace:BeforeTerminator and update
current usages where this applies.

Resolves PR44027.




More information about the All-commits mailing list