Merge pull request #532 from wtlangford/top-removal

Remove duplicate TOP insertions, drop unused defs.
This commit is contained in:
William Langford committed 2014-08-05 13:41:59 -04:00
commit ef5bd5a6de
2 files changed
+7 -6

No files matched your search

+6 -2
View File
@@ -399,7 +399,7 @@ block block_drop_unreferenced(block body) {
int drop;
do {
drop = 0;
while((curr = block_take(&body)) && curr->op != TOP) {
while ((curr = block_take(&body)) && curr->op != TOP) {
block b = inst_block(curr);
if (block_count_refs(b,refd) + block_count_refs(b,body) == 0) {
unrefd = BLOCK(unrefd, b);
@@ -593,7 +593,11 @@ block gen_definedor(block a, block b) {
}
int block_has_main(block top) {
return top.first && top.first->op == TOP;
for (inst *c = top.first; c; c = c->next) {
if (c->op == TOP)
return 1;
}
return 0;
}
int block_is_funcdef(block b) {
+1 -4
View File
@@ -278,10 +278,7 @@ FuncDef FuncDefs {
Exp:
FuncDef Exp %prec ';' {
if (block_is_funcdef($2))
$$ = block_bind($1, $2, OP_IS_CALL_PSEUDO);
else
$$ = block_bind($1, BLOCK(gen_op_simple(TOP), $2), OP_IS_CALL_PSEUDO);
$$ = block_bind_referenced($1, $2, OP_IS_CALL_PSEUDO);
} |
Term "as" '$' IDENT '|' Exp {