Re-enable asan tests which we disabled due to huge stack frames.

The interpreter refactoring reduced the stack frames from
massive to just slightly bigger (mostly thanks to NO_INLINE).

Bug: 117341496
Test: art/test.py -r -t 059 -t 074 -t 911 -t 913 -t 980
Change-Id: Ic116019944c99eba81843936a5126b9a61f4b423
diff --git a/runtime/interpreter/interpreter_switch_impl-inl.h b/runtime/interpreter/interpreter_switch_impl-inl.h
index 0f15adf..8a83ede 100644
--- a/runtime/interpreter/interpreter_switch_impl-inl.h
+++ b/runtime/interpreter/interpreter_switch_impl-inl.h
@@ -1957,18 +1957,18 @@
     TraceExecution(shadow_frame, inst, dex_pc);
     uint16_t inst_data = inst->Fetch16(0);
     bool exit = false;
+    bool success;  // Moved outside to keep frames small under asan.
     if (InstructionHandler<do_access_check, transaction_active, Instruction::kInvalidFormat>(
             ctx, instrumentation, self, shadow_frame, dex_pc, inst, inst_data, next, exit).
             Preamble()) {
+      DCHECK_EQ(self->IsExceptionPending(), inst->Opcode(inst_data) == Instruction::MOVE_EXCEPTION);
       switch (inst->Opcode(inst_data)) {
 #define OPCODE_CASE(OPCODE, OPCODE_NAME, NAME, FORMAT, i, a, e, v)                                \
         case OPCODE: {                                                                            \
-          DCHECK_EQ(self->IsExceptionPending(), (OPCODE == Instruction::MOVE_EXCEPTION));         \
           next = inst->RelativeAt(Instruction::SizeInCodeUnits(Instruction::FORMAT));             \
-          bool success = OP_##OPCODE_NAME<do_access_check, transaction_active>(                   \
+          success = OP_##OPCODE_NAME<do_access_check, transaction_active>(                        \
               ctx, instrumentation, self, shadow_frame, dex_pc, inst, inst_data, next, exit);     \
           if (success && LIKELY(!interpret_one_instruction)) {                                    \
-            DCHECK(!exit) << NAME;                                                                \
             continue;                                                                             \
           }                                                                                       \
           if (exit) {                                                                             \
diff --git a/test/074-gc-thrash/src/Main.java b/test/074-gc-thrash/src/Main.java
index 5165df7..828184e 100644
--- a/test/074-gc-thrash/src/Main.java
+++ b/test/074-gc-thrash/src/Main.java
@@ -195,7 +195,7 @@
  * Allocates useless objects in recursive calls.
  */
 class Deep extends Thread {
-    private static final int MAX_DEPTH = 61;
+    private static final int MAX_DEPTH = 50;
 
     private static String strong[] = new String[MAX_DEPTH];
     private static WeakReference weak[] = new WeakReference[MAX_DEPTH];
diff --git a/test/knownfailures.json b/test/knownfailures.json
index 070df35..10c05f9 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -694,47 +694,6 @@
         "bug": "b/31098551"
     },
     {
-        "tests": [
-            "059-finalizer-throw",
-            "074-gc-thrash",
-            "911-get-stack-trace",
-            "913-heaps",
-            "980-redefine-object"
-        ],
-        "description": [
-            "Interpreter with access checks stack frames are too large and result in",
-            "StackOverFlow errors being thrown."
-        ],
-        "variant": "interp-ac & host",
-        "env_vars": {"SANITIZE_HOST": "address"}
-    },
-    {
-        "tests": [
-            "059-finalizer-throw",
-            "074-gc-thrash",
-            "911-get-stack-trace",
-            "913-heaps",
-            "980-redefine-object"
-        ],
-        "description": [
-            "Interpreter with access checks stack frames are too large and result in",
-            "StackOverFlow errors being thrown."
-        ],
-        "variant": "interp-ac & target",
-        "env_vars": {"SANITIZE_TARGET": "address"}
-    },
-    {
-        "tests": [
-            "074-gc-thrash"
-        ],
-        "description": [
-            "Interpreter with access checks stack frames are too large and result in",
-            "StackOverFlow errors being thrown."
-        ],
-        "variant": "interp-ac & target",
-        "env_vars": {"SANITIZE_TARGET": "hwaddress"}
-    },
-    {
         "tests": "071-dexfile-map-clean",
         "description": [ "We use prebuilt zipalign on master-art-host to avoid pulling in a lot",
                          "of the framework. But a non-sanitized zipalign binary does not work with",