Get rid of IR_CONT_IF_FALSE

This commit is contained in:
Brian 2007-03-28 14:25:30 -06:00
parent 3e7d43cd48
commit 393a93ea32
3 changed files with 1 additions and 10 deletions

View File

@ -1216,7 +1216,6 @@ emit_loop(slang_emit_info *emitInfo, slang_ir_node *n)
}
else {
assert(ir->Opcode == IR_CONT ||
ir->Opcode == IR_CONT_IF_FALSE ||
ir->Opcode == IR_CONT_IF_TRUE);
assert(inst->Opcode == OPCODE_CONT ||
inst->Opcode == OPCODE_BRA);
@ -1276,7 +1275,6 @@ emit_cont_break_if(slang_emit_info *emitInfo, slang_ir_node *n,
struct prog_instruction *inst;
assert(n->Opcode == IR_CONT_IF_TRUE ||
n->Opcode == IR_CONT_IF_FALSE ||
n->Opcode == IR_BREAK_IF_TRUE ||
n->Opcode == IR_BREAK_IF_FALSE);
@ -1293,8 +1291,7 @@ emit_cont_break_if(slang_emit_info *emitInfo, slang_ir_node *n,
if (emitInfo->EmitHighLevelInstructions) {
if (emitInfo->EmitCondCodes) {
gl_inst_opcode opcode
= (n->Opcode == IR_CONT_IF_TRUE || n->Opcode == IR_CONT_IF_FALSE)
? OPCODE_CONT : OPCODE_BRK;
= (n->Opcode == IR_CONT_IF_TRUE) ? OPCODE_CONT : OPCODE_BRK;
inst = new_instruction(emitInfo, opcode);
inst->DstReg.CondMask = breakTrue ? COND_NE : COND_EQ;
return inst;
@ -1681,7 +1678,6 @@ emit(slang_emit_info *emitInfo, slang_ir_node *n)
case IR_LOOP:
return emit_loop(emitInfo, n);
case IR_BREAK_IF_FALSE:
case IR_CONT_IF_FALSE:
return emit_cont_break_if(emitInfo, n, GL_FALSE);
case IR_BREAK_IF_TRUE:
case IR_CONT_IF_TRUE:

View File

@ -334,10 +334,6 @@ _slang_print_ir_tree(const slang_ir_node *n, int indent)
printf("BREAK_IF_TRUE\n");
_slang_print_ir_tree(n->Children[0], indent+3);
break;
case IR_CONT_IF_FALSE:
printf("CONT_IF_FALSE\n");
_slang_print_ir_tree(n->Children[0], indent+3);
break;
case IR_CONT_IF_TRUE:
printf("CONT_IF_TRUE\n");
_slang_print_ir_tree(n->Children[0], indent+3);

View File

@ -75,7 +75,6 @@ typedef enum
IR_BREAK_IF_TRUE,
IR_BREAK_IF_FALSE,
IR_CONT_IF_TRUE,
IR_CONT_IF_FALSE,
/* Children[0] = the condition expression */
IR_MOVE,