search for: reverse_cond

Displaying 4 results from an estimated 4 matches for "reverse_cond".

2004 Jul 08
4
[LLVMdev] PHI nodes in machine code
...ine code? And why the code in LiveVariables.cpp which looks at those PHI nodes (line 249 and below) is necessary. The reason I'm asking is that I try to support 64-bit comparison and I do it by generating code like: // if high1 cond high2: goto operand0 // if high1 reverse_cond high2: goto operand1 // if low cond high2: goto operand0 // goto operand1 but this means that operand0 and operand1 (the successor basic blocks) suddenly get more predecessor than recorded in phi nodes, and LiveVariables.cpp asserts on that. Of course, I can add anothe...
2004 Jul 08
0
[LLVMdev] PHI nodes in machine code
...write code like: if (a cond b) then r1 = 1 else r2 = 0 r = phi(r1, r2) > The reason I'm asking is that I try to support 64-bit comparison and I do it > by generating code like: > > // if high1 cond high2: goto operand0 > // if high1 reverse_cond high2: goto operand1 the second if should just be an unconditional branch to operand1: clearly, if (high1 cond high2) is false, the reverse condition is true. > // if low cond high2: goto operand0 > // goto operand1 These would have to go into different blocks, as...
2004 Jul 09
2
[LLVMdev] PHI nodes in machine code
...gt; else > r2 = 0 > > r = phi(r1, r2) Ok, I see. > > The reason I'm asking is that I try to support 64-bit comparison and I do > > it by generating code like: > > > > // if high1 cond high2: goto operand0 > > // if high1 reverse_cond high2: goto operand1 > > the second if should just be an unconditional branch to operand1: > clearly, if (high1 cond high2) is false, the reverse condition is true. Actually, you've found a bug: it should be swapped_cond, not reverse_cond. > > but this means that operand0 and o...
2004 Jul 08
0
[LLVMdev] PHI nodes in machine code
....cpp which looks at > those PHI > nodes (line 249 and below) is necessary. > > The reason I'm asking is that I try to support 64-bit comparison and I > do it > by generating code like: > > // if high1 cond high2: goto operand0 > // if high1 reverse_cond high2: goto operand1 > // if low cond high2: goto operand0 > // goto operand1 > > but this means that operand0 and operand1 (the successor basic blocks) > suddenly get more predecessor than recorded in phi nodes, and > LiveVariables.cpp asserts on that. &...