aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2016-02-06 09:19:40 +0000
committerMichael Kruse <llvm@meinersbur.de>2016-02-06 09:19:40 +0000
commit2e02d560aa6e1f1ea4eb93245108cb3db5a64ff5 (patch)
tree129cbfdba41f234e7f34b15b07d9d7950dbc8291 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parentdf6763abe85cabbd1b217e6740c296443c2b436f (diff)
downloadllvm-2e02d560aa6e1f1ea4eb93245108cb3db5a64ff5.zip
llvm-2e02d560aa6e1f1ea4eb93245108cb3db5a64ff5.tar.gz
llvm-2e02d560aa6e1f1ea4eb93245108cb3db5a64ff5.tar.bz2
Follow uses to create value MemoryAccesses
The previously implemented approach is to follow value definitions and create write accesses ("push defs") while searching for uses. This requires the same relatively validity- and requirement conditions to be replicated at multiple locations (PHI instructions, other instructions, uses by PHIs). We replace this by iterating over the uses in a SCoP ("pull in requirements"), and add writes only when at least one read has been added. It turns out to be simpler code because each use is only iterated over once and writes are added for the first access that reads it. We need another iteration to identify escaping values (uses not in the SCoP), which also makes the difference between such accesses more obvious. As a side-effect, the order of scalar MemoryAccess can change. Differential Revision: http://reviews.llvm.org/D15706 llvm-svn: 259987
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions