update year
[mono.git] / mono / mini / abcremoval.c
index adce4781db8cca4ce775ea74d4eda20fa5c82283..0e84305fa7b2a973dacef3119d3676ebb18456e4 100644 (file)
@@ -12,6 +12,7 @@
 #include <mono/metadata/debug-helpers.h>
 #include <mono/metadata/mempool.h>
 #include <mono/metadata/opcodes.h>
+#include <mono/metadata/mempool-internals.h>
 
 #ifndef DISABLE_JIT
 
@@ -212,27 +213,6 @@ print_evaluation_area_contexts (MonoVariableRelationsEvaluationArea *area) {
 }
 #endif
 
-static inline GSList*
-g_slist_append_mempool (MonoMemPool *mp, GSList *list, gpointer data)
-{
-       GSList *new_list;
-       GSList *last;
-       
-       new_list = mono_mempool_alloc (mp, sizeof (GSList));
-       new_list->data = data;
-       new_list->next = NULL;
-       
-       if (list) {
-               last = list;
-               while (last->next)
-                       last = last->next;
-               last->next = new_list;
-               
-               return list;
-       } else
-               return new_list;
-}
-
 /*
  * Check if the delta of an integer variable value is safe with respect
  * to the variable size in bytes and its kind (signed or unsigned).
@@ -338,6 +318,62 @@ get_relation_from_ins (MonoVariableRelationsEvaluationArea *area, MonoInst *ins,
 
                /* FIXME: Add more opcodes */
        default:
+               /* These opcodes are not currently handled while running SciMark, first
+                * column is the number of times the warning was shown:
+                *
+                *       1 add_imm
+                *       1 float_conv_to_i8
+                *       1 int_mul_ovf_un
+                *       1 int_neg
+                *       1 int_or
+                *       1 int_shr_un
+                *       1 localloc
+                *       1 long_ceq
+                *       1 long_rem
+                *       1 long_sub
+                *       2 int_ceq
+                *       2 int_conv_to_i2
+                *       2 int_min
+                *       2 lcall
+                *       2 long_div
+                *       3 int_conv_to_u2
+                *       3 long_shr_imm
+                *       4 int_rem
+                *       4 int_rem_imm
+                *       4 loadi1_membase
+                *       4 loadu4_membase
+                *       5 int_div
+                *       5 shl_imm
+                *       6 int_div_imm
+                *       6 int_mul
+                *       9 int_mul_imm
+                *       9 zext_i4
+                *      10 int_shr_imm
+                *      12 int_shr_un_imm
+                *      12 long_add_imm
+                *      12 outarg_vtretaddr
+                *      12 strlen
+                *      13 int_or_imm
+                *      23 call_membase
+                *      23 int_conv_to_u1
+                *      23 long_add
+                *      24 int_and_imm
+                *      24 int_shl_imm
+                *      24 loadu2_membase
+                *      29 loadi8_membase
+                *      31 llvm_outarg_vt
+                *      34 int_sub
+                *      34 loadu1_membase
+                *      42 int_add
+                *      85 ldaddr
+                *     116 loadi4_membase
+                *     159 x86_lea
+                *     179 sext_i4
+                *     291 load_membase
+                *     462 i8const
+                *     472 call
+                */
+               
                break;
        }
        return value_kind;
@@ -986,6 +1022,9 @@ process_block (MonoCompile *cfg, MonoBasicBlock *bb, MonoVariableRelationsEvalua
                printf ("\nProcessing block %d [dfn %d]...\n", bb->block_num, bb->dfn);
        }
 
+       if (bb->region != -1)
+               return;
+
        get_relations_from_previous_bb (area, bb, &additional_relations);
        if (TRACE_ABC_REMOVAL) {
                if (additional_relations.relation1.relation.relation != MONO_ANY_RELATION) {