summaryrefslogtreecommitdiffstats
path: root/lld/ELF/InputSection.cpp
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2015-11-11 08:42:20 +0000
committerTobias Grosser <tobias@grosser.es>2015-11-11 08:42:20 +0000
commitb76cd3cc568adba94c0205566c1ab5d5c751a7d6 (patch)
treebf8ee7e90880a211b16d9befbf56b83dbe421e78 /lld/ELF/InputSection.cpp
parentfb79b5f2737e327ef7e97a501fe38b5e6030bed2 (diff)
downloadbcm5719-llvm-b76cd3cc568adba94c0205566c1ab5d5c751a7d6.tar.gz
bcm5719-llvm-b76cd3cc568adba94c0205566c1ab5d5c751a7d6.zip
ScopInfo: Pass domain constraints through error blocks
Previously, we just skipped error blocks during scop construction. With this change we make sure we can construct domains for error blocks such that these domains can be forwarded to subsequent basic blocks. This change ensures that basic blocks that post-dominate and are dominated by a basic block that branches to an error condition have the very same iteration domain as the branching basic block. Before, this change we would construct a domain that excludes all error conditions. Such domains could become _very_ complex and were undesirable to build. Another solution would have been to drop these constraints using a dominance/post-dominance check instead of modeling the error blocks. Such a solution could also work in case of unreachable statements or infinite loops in the scop. However, as we currently (to my believe incorrectly) model unreachable basic blocks in the post-dominance tree, such a solution is not yet feasible and requires first a change to LLVM's post-dominance tree construction. This commit addresses the most sever compile time issue reported in: http://llvm.org/PR25458 llvm-svn: 252713
Diffstat (limited to 'lld/ELF/InputSection.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud