Using get_pure_expr() can avoid duplication for some expression types.
Signed-off-by: Tomek Grabiec <[email protected]>
---
jit/object-bc.c | 3 +--
test/jit/object-bc-test.c | 7 +------
2 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/jit/object-bc.c b/jit/object-bc.c
index b88423c..25b4847 100644
--- a/jit/object-bc.c
+++ b/jit/object-bc.c
@@ -289,12 +289,11 @@ static int convert_array_store(struct parse_context *ctx,
enum vm_type type)
if (!store_stmt)
goto failed;
-
arrayref_pure = get_pure_expr(ctx, arrayref);
index_pure = get_pure_expr(ctx, index);
dest_expr = array_deref_expr(type, arrayref_pure, index_pure);
- src_expr = dup_expr(ctx, value);
+ src_expr = get_pure_expr(ctx, value);
store_stmt->store_dest = &dest_expr->node;
store_stmt->store_src = &src_expr->node;
diff --git a/test/jit/object-bc-test.c b/test/jit/object-bc-test.c
index d4d5208..72f1b1e 100644
--- a/test/jit/object-bc-test.c
+++ b/test/jit/object-bc-test.c
@@ -352,8 +352,7 @@ static void assert_convert_array_store(enum vm_type
expected_type,
stmt = stmt_entry(bb->stmt_list.next);
struct statement *arrayref_pure_stmt = stmt;
- struct statement *value_dup_stmt =
stmt_entry(arrayref_pure_stmt->stmt_list_node.next);
- struct statement *arraycheck_stmt =
stmt_entry(value_dup_stmt->stmt_list_node.next);
+ struct statement *arraycheck_stmt =
stmt_entry(arrayref_pure_stmt->stmt_list_node.next);
struct statement *storecheck_stmt =
stmt_entry(arraycheck_stmt->stmt_list_node.next);
struct statement *store_stmt =
stmt_entry(storecheck_stmt->stmt_list_node.next);
@@ -362,10 +361,6 @@ static void assert_convert_array_store(enum vm_type
expected_type,
arrayref_pure_stmt->store_src);
assert_temporary_expr(J_REFERENCE, arrayref_pure_stmt->store_dest);
- assert_store_stmt(value_dup_stmt);
- assert_ptr_equals(&expr->node, value_dup_stmt->store_src);
- assert_temporary_expr(expected_type, value_dup_stmt->store_dest);
-
assert_arraycheck_stmt(expected_type,
to_expr(arrayref_pure_stmt->store_dest),
index_expr,
--
1.6.0.6
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Jatovm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jatovm-devel