[all-commits] [llvm/llvm-project] 5f026b: [DependenceAnalysis] Dependecies for loads marked ...
ebrevnov via All-commits
all-commits at lists.llvm.org
Tue Nov 19 02:30:18 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 5f026b6d9e882941fde9b7e5dc0a2d807f7f24f5
https://github.com/llvm/llvm-project/commit/5f026b6d9e882941fde9b7e5dc0a2d807f7f24f5
Author: Evgeniy Brevnov <evgueni.brevnov at gmail.com>
Date: 2019-11-19 (Tue, 19 Nov 2019)
Changed paths:
M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
Log Message:
-----------
[DependenceAnalysis] Dependecies for loads marked with "ivnariant.load" should not be shared with general accesses. Fix for https://bugs.llvm.org/show_bug.cgi?id=42151
Summary:
Dependence anlysis has a mechanism to cache results. Thus for particular memory access the cache keep track of side effects in basic blocks. The problem is that for invariant loads dependepce analysis legally ignores many dependencies due to a special semantic rules for such loads. But later results calculated for invariant load retrived from the cache for general case acceses. As a result we have wrong dependence information causing GVN to do illegal transformation. Fixes, T42151.
Proposed solution is to disable caching of invariant loads. I think such loads a pretty rare and it doesn't make sense to extend caching mechanism for them.
Reviewers: reames, chandlerc, skatkov, morisset, jdoerfert
Reviewed By: reames
Subscribers: hiraditya, test, jdoerfert, lebedev.ri, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64405
More information about the All-commits
mailing list