Go to file
Bob Wilson c72da6bb56 Clean up some problems with extra CFG edges being introduced during
if-conversion.  The RemoveExtraEdges function doesn't work for blocks that
end with unanalyzable branches, so in those cases, the "extra" edges must
be explicitly removed.  The CopyAndPredicateBlock and MergeBlocks methods
can also avoid copying successor edges due to branches that have already
been removed.  The latter case is especially helpful when MergeBlocks is
called for handling "diamond" if-conversions, where otherwise you can end
up with some weird intermediate states in the CFG.  Unfortunately I've
been unable to find cases where this cleanup actually makes a significant
difference in the code.  There is one test where we manage to remove an
empty block at the end of a function.  Radar 6911268.

llvm-svn: 106939
2010-06-26 04:27:33 +00:00
clang Mangle pointer and (lvalue) reference types in the Microsoft C++ Mangler. 2010-06-26 03:50:05 +00:00
compiler-rt This is a test commit to verify repository access. 2010-06-19 04:34:50 +00:00
libcxx regex: learning to crawl 2010-06-25 20:56:08 +00:00
lldb No need to add the test script containing directory to sys.path more than once. 2010-06-26 00:19:32 +00:00
llvm Clean up some problems with extra CFG edges being introduced during 2010-06-26 04:27:33 +00:00