Remove a ton of dead code and document the one really insane case.

This commit is contained in:
Dale Weiler 2013-06-21 23:40:51 +00:00
parent 684112474b
commit ce23e95d0b
3 changed files with 25 additions and 5 deletions

6
ast.c
View file

@ -2934,9 +2934,13 @@ bool ast_loop_codegen(ast_loop *self, ast_function *func, bool lvalue, ir_value
{ {
ir_block *ontrue, *onfalse; ir_block *ontrue, *onfalse;
if (bprecond) ontrue = bprecond; if (bprecond) ontrue = bprecond;
else if (bbody) ontrue = bbody; else ontrue = bbody; /* can never be null */
/* all of this is dead code
else if (bincrement) ontrue = bincrement; else if (bincrement) ontrue = bincrement;
else ontrue = bpostcond; else ontrue = bpostcond;
*/
onfalse = bout; onfalse = bout;
if (self->post_not) { if (self->post_not) {
tmpblock = ontrue; tmpblock = ontrue;

21
ir.c
View file

@ -1800,14 +1800,33 @@ ir_value* ir_block_create_binop(ir_block *self, lex_ctx ctx,
ot = TYPE_POINTER; ot = TYPE_POINTER;
break; break;
#endif #endif
/*
* after the following default case, the value of opcode can never
* be 1, 2, 3, 4, 5, 6, 7, 8, 9, 62, 63, 64, 65
*/
default: default:
/* ranges: */ /* ranges: */
/* boolean operations result in floats */ /* boolean operations result in floats */
/*
* opcode >= 10 takes true branch opcode is at least 10
* opcode <= 23 takes false branch opcode is at least 24
*/
if (opcode >= INSTR_EQ_F && opcode <= INSTR_GT) if (opcode >= INSTR_EQ_F && opcode <= INSTR_GT)
ot = TYPE_FLOAT; ot = TYPE_FLOAT;
/*
* At condition "opcode <= 23", the value of "opcode" must be
* at least 24.
* At condition "opcode <= 23", the value of "opcode" cannot be
* equal to any of {1, 2, 3, 4, 5, 6, 7, 8, 9, 62, 63, 64, 65}.
* The condition "opcode <= 23" cannot be true.
*
* Thus ot=2 (TYPE_FLOAT) can never be true
*/
#if 0
else if (opcode >= INSTR_LE && opcode <= INSTR_GT) else if (opcode >= INSTR_LE && opcode <= INSTR_GT)
ot = TYPE_FLOAT; ot = TYPE_FLOAT;
#if 0
else if (opcode >= INSTR_LE_I && opcode <= INSTR_EQ_FI) else if (opcode >= INSTR_LE_I && opcode <= INSTR_EQ_FI)
ot = TYPE_FLOAT; ot = TYPE_FLOAT;
#endif #endif

3
main.c
View file

@ -697,9 +697,6 @@ int main(int argc, char **argv) {
mem_d(line); mem_d(line);
} }
if (retval)
goto cleanup;
if (vec_size(items)) { if (vec_size(items)) {
if (!OPTS_OPTION_BOOL(OPTION_QUIET) && if (!OPTS_OPTION_BOOL(OPTION_QUIET) &&
!OPTS_OPTION_BOOL(OPTION_PP_ONLY)) !OPTS_OPTION_BOOL(OPTION_PP_ONLY))