Upgrade asm to version 7.4

Fixes: b/261594101
Change-Id: Id46cf651c9cc9c445e8d3c418ac16ef43822c90c
diff --git a/build.gradle b/build.gradle
index bde2f60..49d3ecf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -33,7 +33,7 @@
 
 ext {
     androidSupportVersion = '25.4.0'
-    asmVersion = '9.3'  // When updating update tools/asmifier.py, build.src and Toolhelper as well.
+    asmVersion = '9.4'  // When updating update tools/asmifier.py, build.src and Toolhelper as well.
     espressoVersion = '3.0.0'
     fastutilVersion = '7.2.0'
     guavaVersion = '30.1.1-jre'
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 81527b4..3f4e21f 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -8,7 +8,7 @@
     mavenCentral()
 }
 ext {
-    asmVersion = '9.3'
+    asmVersion = '9.4'
 }
 
 dependencies {
diff --git a/src/main/java/com/android/tools/r8/cf/CfVersion.java b/src/main/java/com/android/tools/r8/cf/CfVersion.java
index df6ee75..1fd5ce7 100644
--- a/src/main/java/com/android/tools/r8/cf/CfVersion.java
+++ b/src/main/java/com/android/tools/r8/cf/CfVersion.java
@@ -42,6 +42,8 @@
   public static final CfVersion V18_PREVIEW = new CfVersion(Opcodes.V18 | Opcodes.V_PREVIEW);
   public static final CfVersion V19 = new CfVersion(Opcodes.V19);
   public static final CfVersion V19_PREVIEW = new CfVersion(Opcodes.V19 | Opcodes.V_PREVIEW);
+  public static final CfVersion V20 = new CfVersion(Opcodes.V20);
+  public static final CfVersion V20_PREVIEW = new CfVersion(Opcodes.V20 | Opcodes.V_PREVIEW);
 
   private final int version;
 
@@ -64,7 +66,8 @@
     CfVersion.V16,
     CfVersion.V17,
     CfVersion.V18,
-    CfVersion.V19
+    CfVersion.V19,
+    CfVersion.V20
   };
 
   // Private constructor in case we want to canonicalize versions.
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 38e6b3f..49455c1 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -149,7 +149,7 @@
     }
   }
 
-  public static final CfVersion SUPPORTED_CF_VERSION = CfVersion.V19;
+  public static final CfVersion SUPPORTED_CF_VERSION = CfVersion.V20;
 
   public static final int SUPPORTED_DEX_VERSION =
       AndroidApiLevel.LATEST.getDexVersion().getIntValue();
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 5c73e63..49a22e5 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -124,8 +124,8 @@
 
   public static final String R8_TEST_BUCKET = "r8-test-results";
 
-  public static final String ASM_JAR = BUILD_DIR + "deps/asm-9.3.jar";
-  public static final String ASM_UTIL_JAR = BUILD_DIR + "deps/asm-util-9.3.jar";
+  public static final String ASM_JAR = BUILD_DIR + "deps/asm-9.4.jar";
+  public static final String ASM_UTIL_JAR = BUILD_DIR + "deps/asm-util-9.4.jar";
 
   public static final Path API_SAMPLE_JAR = Paths.get("tests", "r8_api_usage_sample.jar");
 
diff --git a/tools/asmifier.py b/tools/asmifier.py
index ae7d1e6..82b90af 100755
--- a/tools/asmifier.py
+++ b/tools/asmifier.py
@@ -10,7 +10,7 @@
 import sys
 import utils
 
-ASM_VERSION = '9.3'
+ASM_VERSION = '9.4'
 ASM_JAR = 'asm-' + ASM_VERSION + '.jar'
 ASM_UTIL_JAR = 'asm-util-' + ASM_VERSION + '.jar'