| @@ -890,13 +890,18 @@ enum NodeType { |
|
|
| 890 |
890 |
/// BRCOND - Conditional branch. The first operand is the chain, the |
| 891 |
891 |
/// second is the condition, the third is the block to branch to if the |
| 892 |
892 |
/// condition is true. If the type of the condition is not i1, then the |
| 893 |
|
-/// high bits must conform to getBooleanContents. |
|
893 |
+/// high bits must conform to getBooleanContents. If the condition is undef, |
|
894 |
+/// it nondeterministically jumps to the block. |
|
895 |
+/// TODO: Its semantics w.r.t undef requires further discussion; we need to |
|
896 |
+/// make it sure that it is consistent with optimizations in MIR & the |
|
897 |
+/// meaning of IMPLICIT_DEF. See https://reviews.llvm.org/D92015 |
| 894 |
898 |
BRCOND, |
| 895 |
899 |
|
| 896 |
900 |
/// BR_CC - Conditional branch. The behavior is like that of SELECT_CC, in |
| 897 |
901 |
/// that the condition is represented as condition code, and two nodes to |
| 898 |
902 |
/// compare, rather than as a combined SetCC node. The operands in order |
| 899 |
|
-/// are chain, cc, lhs, rhs, block to branch to if condition is true. |
|
903 |
+/// are chain, cc, lhs, rhs, block to branch to if condition is true. If |
|
904 |
+/// condition is undef, it nondeterministically jumps to the block. |
| 900 |
905 |
BR_CC, |
| 901 |
906 |
|
| 902 |
907 |
/// INLINEASM - Represents an inline asm block. This node always has two |