forked from OSchip/llvm-project
![]() + Added the creation of an empty Entry block at the end of CFG construction if the Entry block in the CFG contains multiple predecessors (which can happen with labels and do loops). + Fixed bug in the creation of an empty Exit block with functions where not all paths end in a return statement (but some do). Basic blocks with return statements were jumping to a (sometimes) non-empty block. + FinishBlock no longer checks for labels at the beginning of a basic block before reversing the statements in the block. This is because the recursion invariants of the builder methods have been cleaned up, and blocks are only passed to FinishBlock at most once. + Modified handling of "if", "for", "while", "do", and "switch" to allow condition expressions that can span multiple basic blocks. This allows such conditions to contain short-circuit expressions (which span multiple blocks in the CFG). llvm-svn: 41508 |
||
---|---|---|
clang | ||
llvm |