1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00

Remove duplicate TOP insertions, drop unused defs.

This commit is contained in:
William Langford
2014-08-05 00:46:10 -04:00
parent a2f99d43c3
commit a25950a58c
2 changed files with 7 additions and 6 deletions

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) {

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 {