]> granicus.if.org Git - llvm/commit
[AliasAnalysis] Fences do not modify constant memory location
authorAnna Thomas <anna@azul.com>
Fri, 20 Jan 2017 00:21:33 +0000 (00:21 +0000)
committerAnna Thomas <anna@azul.com>
Fri, 20 Jan 2017 00:21:33 +0000 (00:21 +0000)
commitaaeaea13997b16911226a053f984ce2ae8443e23
tree6de5df7d1f1ad4b3c0e7d930dcbff60d1bdb5b4e
parent5527bcefd9f33c3d0e5ca8b45caaab2dd0236f38
[AliasAnalysis] Fences do not modify constant memory location

Summary:
Fence instructions are currently marked as `ModRef` for all memory locations.

We can improve this for constant memory locations (such as constant globals),
since fence instructions cannot modify these locations.

This helps us to forward constant loads across fences (added test case in GVN).
There were no changes in behaviour for similar test cases in early-cse and licm.

Reviewers: dberlin, sanjoy, reames

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292546 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/AliasAnalysis.h
lib/Analysis/AliasAnalysis.cpp
test/Transforms/GVN/fence.ll
test/Transforms/NewGVN/fence.ll