parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is constant, return body without wrapper.
* parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is constant, return body without wrapper. (Improves constant folding.) * lex.c (build_wfl_node): Clear TREE_TYPE from returned node. From-SVN: r39017
This commit is contained in:
parent
521b92248e
commit
00b4575d1e
3 changed files with 12 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2001-01-14 Per Bothner <per@bothner.com>
|
||||
|
||||
* parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
|
||||
constant, return body without wrapper. (Improves constant folding.)
|
||||
* lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
|
||||
|
||||
2001-01-13 Per Bothner <per@bothner.com>
|
||||
|
||||
* expr.c (expand_java_field_op): Assigning to a final field outside
|
||||
|
|
|
@ -1642,7 +1642,10 @@ static tree
|
|||
build_wfl_node (node)
|
||||
tree node;
|
||||
{
|
||||
return build_expr_wfl (node, ctxp->filename, ctxp->elc.line, ctxp->elc.col);
|
||||
node = build_expr_wfl (node, ctxp->filename, ctxp->elc.line, ctxp->elc.col);
|
||||
/* Prevent java_complete_lhs from short-circuiting node (if constant). */
|
||||
TREE_TYPE (node) = NULL_TREE;
|
||||
return node;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -11485,9 +11485,9 @@ java_complete_lhs (node)
|
|||
EXPR_WFL_NODE (node) = body;
|
||||
TREE_SIDE_EFFECTS (node) = TREE_SIDE_EFFECTS (body);
|
||||
CAN_COMPLETE_NORMALLY (node) = CAN_COMPLETE_NORMALLY (body);
|
||||
if (body == empty_stmt_node)
|
||||
if (body == empty_stmt_node || TREE_CONSTANT (body))
|
||||
{
|
||||
/* Optimization; makes it easier to detect empty bodies. */
|
||||
/* Makes it easier to constant fold, detect empty bodies. */
|
||||
return body;
|
||||
}
|
||||
if (body == error_mark_node)
|
||||
|
|
Loading…
Add table
Reference in a new issue