summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/ShadowStackGC.cpp
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2015-08-02 16:17:41 +0000
committerTobias Grosser <tobias@grosser.es>2015-08-02 16:17:41 +0000
commit6213913244e0e6df307830ee7c7d6144ca2a258e (patch)
tree02f37d13663750b146f697776156c486491d873b /llvm/lib/CodeGen/ShadowStackGC.cpp
parent4034b9f0b932c7e8c47a18fe1ef7d43e273e2913 (diff)
downloadbcm5719-llvm-6213913244e0e6df307830ee7c7d6144ca2a258e.tar.gz
bcm5719-llvm-6213913244e0e6df307830ee7c7d6144ca2a258e.zip
Use the branch instruction to define the location of a PHI-node write
We use the branch instruction as the location at which a PHI-node write takes place, instead of the PHI-node itself. This allows us to identify the basic-block in a region statement which is on the incoming edge of the PHI-node and for which the write access was originally introduced. As a result we can, during code generation, avoid generating PHI-node write accesses for basic blocks that do not preceed the PHI node without having to look at the IR again. This change fixes a bug which was introduced in r243420, when we started to explicitly model PHI-node reads and writes, but dropped some additional checks that where still necessary during code generation to not emit PHI-node writes for basic-blocks that are not on incoming edges of the original PHI node. Compared to the code before r243420 the new code does not need to inspect the IR any more and we also do not generate multiple redundant writes. llvm-svn: 243852
Diffstat (limited to 'llvm/lib/CodeGen/ShadowStackGC.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud