]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
remove incorrect optimization in jit_insn_store()
authorAleksey Demakov <ademakov@gmail.com>
Sat, 26 May 2007 13:47:31 +0000 (13:47 +0000)
committerAleksey Demakov <ademakov@gmail.com>
Sat, 26 May 2007 13:47:31 +0000 (13:47 +0000)
ChangeLog
jit/jit-insn.c

index ccfc53ff8f918f02ba0340e4bcb577f83d6d7345..9cd1b467ff3b488c2cb959575033f214df7081ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-26  Aleksey Demakov  <ademakov@gmail.com>
+
+       * jit/jit-insn.c (jit_insn_store): remove incorrect optimization
+       that eliminates intermediate value without knowledge of its later
+       use.
+
 2007-04-04  Aleksey Demakov  <ademakov@gmail.com>
 
        * jit/jit-reg-alloc.c (commit_output_value): fix compilation for
index a81a5eb6bafa485fb355cb5f7ea2a6cb50fc60e0..ea036d1ae17653a511f2446c03fe08d631e32c74 100644 (file)
@@ -1442,15 +1442,6 @@ int jit_insn_store(jit_function_t func, jit_value_t dest, jit_value_t value)
        {
                return 0;
        }
-       insn = _jit_block_get_last(func->builder->current_block);
-       if(value->is_temporary && insn && insn->dest == value &&
-          insn->value1 == dest)
-       {
-               /* Special case: we can move the destination value back into
-                  the previous instruction, to avoid a redundant copy */
-               insn->dest = dest;
-               return 1;
-       }
        insn = _jit_block_add_insn(func->builder->current_block);
        if(!insn)
        {