aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/SourceManager.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2019-08-21 20:06:50 +0000
committerFlorian Hahn <flo@fhahn.com>2019-08-21 20:06:50 +0000
commitb5e52bfd83a230c59f00a896a1002feec51dcfa2 (patch)
treebdfeea08a937b1b5f6ffbb865bc3a0670812286c /clang/lib/Basic/SourceManager.cpp
parent6a29ff175490d8832f7807c3050dfed4ae202ae7 (diff)
downloadllvm-b5e52bfd83a230c59f00a896a1002feec51dcfa2.zip
llvm-b5e52bfd83a230c59f00a896a1002feec51dcfa2.tar.gz
llvm-b5e52bfd83a230c59f00a896a1002feec51dcfa2.tar.bz2
[GVN] Do PHI translations across all edges between the load and the unavailable pred.
Currently we do not properly translate addresses with PHIs if LoadBB != LI->getParent(), because PHITranslateAddr expects a direct predecessor as argument, because it considers all instructions outside of the current block to not requiring translation. The amount of cases that trigger this should be very low, as most single predecessor blocks should be folded into their predecessor by GVN before we actually start with value numbering. It is still not guaranteed to happen, so we should do PHI translation along all edges between the loads' block and the predecessor where we have to place a load. There are a few test cases showing current limits of the PHI translation, which could be improved later. Reviewers: spatel, reames, efriedma, john.brawn Reviewed By: efriedma Tags: #llvm Differential Revision: https://reviews.llvm.org/D65020 llvm-svn: 369570
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions